美文网首页
常见JS题回顾(1)

常见JS题回顾(1)

作者: Maxine708 | 来源:发表于2019-01-06 23:17 被阅读0次
  • js中有几种数据类型, typeof 返回值有哪几个,如果判断一个对象是不是数组?
    答:5种简单数据类型(基本数据类型)number、string、boolean、null、undefined,和1种复杂数据类型object。
    typeof操作符的返回值有6种string、number、boolean、undefined、object、function(Null包含在object里返回)。
    判断一个对象是否是数组:(1)Object.prototype.toString.call(obj)==='[object Array]'
    (2)obj.constructor.name==="Array" ()
    (3)obj instanceof Array;(instanceof只能用来判断对象和函数,不能用来判断字符串和数字等)
    (4)Array.isArray(obj);(IE6,7,8不支持)

  • toString()是一个怎样的方法?然而它是如何将一个值从一种类型转化为字符串类型的呢?
    答:它是能将某一个值转化为字符串的方法。Object.prototype.toString.call(value)判断数据类型

  • caller和callee有什么区别?
    答:caller返回一个函数的引用,这个函数调用了当前的函数,如果是顶层调用的话,返回null;
    callee返回正在执行的函数本身的引用,它是arguments的一个属性。

  • 简述js垃圾回收机制,请谈谈你在开发过程中遇到的内存泄露的情况,是如何解决的。
    答:JS具有自动垃圾回收机制(GC),会周期性的找到那些不再使用的变量,然后释放其内存空间,例如函数执行完成后,会释放其中的局部变量的内存空间。垃圾回收器会跟踪内存中的变量,判断其他有没有用。最常见的是清除标记,即垃圾回收器在运行时会为内存中每个变量添加一个标记,然后,去除环境变量以及其所引用的变量的标记,再次之后再被添加上标记的变量视为将被删除的变量,最后进行内存清除,销毁那些带标记的值并回收其内存空间。此外,还有一种叫做引用计次的方式,因为循环引用的缺陷,很少被使用。
    JS内存垃圾自动回收的机制下,内存泄露产生的原因往往和不需要的引用有关。下面是一些常见的内存泄露方式以及解决方案:
    (1)意外的全局变量或者为this.属性赋值时意外将this指向了全局对象。
    解决方案:使用”use strict”,在严格模式下编程。或者干脆雇佣一些高素质人才。
    (2)在版本较老的浏览器DOM的循环引用或观察者对象变得不可达可能会导致内存泄露,比如:我为某个按钮绑定了事件,回调函数里引用了某个全局变量。之后我把那个按钮节点删除了。
    解决方案:不使用老版本的浏览器(IE9一下);手动remove事件监听器;在不使用DOM节点后将其引用手动覆为null。
    (3)被遗忘的定时器或回调函数,没有清理的DOM元素引用。
    (4)闭包中无用的函数引用外层函数中的变量。

  • jquery的事件委托方法on、live、delegate之间有什么区别?
    答:live和delegate在底层均调用on方法,它们的区别在于live方法将this.context(document)作为事件委托的对象,而delegate则可以供用户选择事件委托的对象。on方法是底层方法,bind方法也在底层调用on方法,on与其它时间委托方法的区别在于type和selector换了位置,如果没有指定selector的话,就将事件绑定到元素本身上。

  • 请说说对MVC,MVP和MVVM的理解
    答:MVC即model\view\controller,是最常见的软件架构模式。view是指用户界面,controller则处理业务逻辑,而model则用来存储数据。view传送指令到controller,controller完成业务逻辑后要求model改变状态,model将新数据发送给view,使用户得到反馈。各部分的通信都是单向的。
    MVP将controller改为presenter,在这种模式中,各个部分之间的通信都是双向的。view与model不发送直接联系,都通过presenter传递。view非常薄,不部署任何业务逻辑,而presenter非常厚。
    MVVM将presenter改为viewModel,和MVP模式非常相似,唯一的区别在于它是双向绑定,view改变,自动反应在viewModel上,反之亦然。

  • 何为跨域?跨域请求资源有几哪种方式?
    答:由于浏览器同源策略,凡是发送请求url的协议、域名、端口三者之间任意一个与当前页面地址不同即为跨域。
    跨域请求资源的方式主要有:
    (1)jsonp动态创建script标签
    (2)Proxy代理
    (3)CORS跨域

  • JS中错误类型有哪些?请简述一下
    答:(1)syntaxError 语法错误 解析代码时发生错误
    (2) referenceError 引用类型错误 当访问一个不存在的变量时发生的错误
    (3)RangeError 是当一个值超出有效范围时发生的错误
    (4)TypeError 是变量或参数不是预期类型时发生的错误。
    (5)EvalError eval函数没有被正确执行时,会抛出EvalError错误。
    (6)URIEror是URL相关函数的参数不正确时抛出的错误。

  • window.onload和DOMContentLoaded的区别?
    答:当 onload 事件触发时,页面上所有的DOM,样式表,脚本,图片,flash都已经加载完成了。当 DOMContentLoaded 事件触发时,仅当DOM加载完成,不包括样式表,图片,flash。

  • 实现数组的随机排序
    答:
    function randomSort(a){
    var arr = a,
    random = [],
    len = arr.length;
    for (var i = 0; i < len; i++) {
    var index = Math.floor(Math.random()*(len - i));
    random.push(a[index]);
    arr.splice(index,1);
    }
    return random;
    }

    var a = [1,2,3,4,5,6,7,8,9,10];
    console.log(randomSort(a));

  • 何时使用===何时使用==?
    答:if(obj.a==null){ //这里相当于obj.a==bull||obj.a==undefined的简写形式 }其余时候用===

  • 用JS创建10个<a>标签,点击的时候弹出来对应的序号?
    答:

  • 简述如何实现一个模块加载器,实现类似require.js的基本功能?
    答:https://blog.csdn.net/xutongbao/article/details/78189667

  • JS中有哪些内置函数?
    答:Object、Array、Boolean、Number、String、Function、Date、RegExp、Error

  • JS变量按照存储方式区分为哪些数据类型
    答:值类型Number\String\Boolean、引用类型Object\Function\Array(好几个变量共用一个内存)

  • 如何理解JSON
    答:JSON是一种数据格式,JSON是一个提供了stringify和parse方法的内置对象,stringify将js对象转化为符合json标准的字符串,parse将符合json标准的字符串转化为js对象。

相关文章

  • 常见JS题回顾(1)

    js中有几种数据类型, typeof 返回值有哪几个,如果判断一个对象是不是数组?答:5种简单数据类型(基本数据类...

  • js常见题

    https://www.cnblogs.com/cutenana/p/7398255.html

  • js常见题

    1.require 与 import 的区别 两者的加载方式不同、规范不同 第一、两者的加载方式不同, requi...

  • 常见JS编程题

    1、查找数组中重复元素 方法1:创建一个新的临时数组来保存数组中已有的元素 方法2: 使用indexOf判断数组元...

  • js 常见编程题

    写一个求和的函数sum,达到下面的效果 实现: 讲解:parseFloat的结果要么为一个小数,要么为NaN,||...

  • js面试常见算法题

    数组去重 洗牌算法 写一个函数,统计字符串里出现出现频率最多的字符 冒泡排序

  • javascript变量类型和计算

    实例案例 首先我先来看面试中常见的几道题: 1、js中使用typeof 能得到那种类型? 2、何时使用 === 何...

  • JS常见基础知识回顾

    变量,作用域和内存问题 引用类型(存在于堆内存中) 可以为其添加属性和方法 基本类型(存在于栈内存中) 不可以为其...

  • web大前端复习——js常见算法题1

    Q1 判断一个单词是否是回文? 回文是指把相同的词汇或句子,在下文中调换位置或颠倒过来,产生首尾回环的情趣,叫做回...

  • Js常见题目1

    1.请写出一个符合 W3C 规范的 HTML 文件,要求 页面标题为「我的页面」 页面中引入了一个外部 CSS 文...

网友评论

      本文标题:常见JS题回顾(1)

      本文链接:https://www.haomeiwen.com/subject/cavqattx.html