js常见面试题

1.js数据类型

    js数据类型分为基本数据类型和引用数据类型,基本数据类型有 String Number Boolean Null Undefined 还有 Symbol Bigint 引用数据类型只有一种,其中常见的数组,函数,对象等都是引用数据类型。

2.判断类型的方法

    1)比较常用的是typeof,它可以检测基本数据类型,由于历史遗留性的问题,null会被判断为Object;引用数据类型只能判断出function。

    2)第二种是instanceof,instanceof用于检测构造函数的prototype是否在该对象的原型链上。类似的constructor也可用于检测数据类型,因为constructor属性指向构造函数本身。

    3)第三种就是借用Object上的tostring方法,因为每个对象的构造函数的prototype上都有tostring方法,所以可以使用call方法来调用Object上的tostring方法,有就是Object.prototype.tostring.call()。

3.es6新增的内容

    1)定义变量的 let 和 const,用let和const定义的变量不存在变量提升,也就是说在定义变量之前使用变量会报错,同时也不可以定义相同的变量。ES6引入了块级作用域,在块级作用域中使用let 和const定义的变量,外部不可以访问。不同的是用const定义的变量必须赋值,而且改变量的值是不可变的

    2)es6之后函数的参数可以设置默认值,可以使用剩余参数来获取参数集合,也就是 ...形参名 的形式。箭头函数在语法上更加简洁,跟普通函数相比它没有arguments,但是可以基于剩余参数来获取参数集合;箭头函数也没有prototype属性,不能作为构造函数,也无法使用new创建实例;箭头函数不会创建自己的this,它只会从自己的作用域链的上一层继承this,同时也无法用call和apply改变this的值。

    3)模板字符串,它用两个反引号标识,可以当字符串使用,也可以当多行字符串使用,同时也可以嵌入变量,变量是写在${}中。

    4)解构赋值,通过解构赋值可以从对象或者数组中取值,并给变量赋值。数组的元素是按次序排列的,变量的取值由它的位置决定;而对象的取值必须与属性名相同,才能取到正确的值。

    5)......

4.class

    

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容