【JavaScript】基本概念面试题

41 阅读1分钟

一、严格模式有哪些?

主流浏览器现在实现了严格模式。es6自动调用严格模式。
在所有语句之前放一个特定语句 "use strict";

1.变量必须先声明后使用
2.函数参数不可有同名属性
3.没有with语句
4.不能对只读属性赋值
5.不能用前缀0表示8进制
6.不能删除变量,只能删除属性
7.eavl和argument不可重新赋值
8.不能删除不可删除的属性          //delete Object.prototype;  抛出 TypeError 错误
9.禁用this指向全局
10.eval不能在外层作用域引入变量
11.argument不能自动反映函数参数
12.增加保留字(protected,static,interface,package,public,private,implements)

二、var、let、const的区别?

image.png

三、几种数据类型?

7种数据类型,其中6种基本数据类型,1种复杂数据类型

6种基本数据类型:Undefined,Null,Boolean,Number,String,Symbol

1种复杂数据类型:Object

四、typeof可检测出几种数据类型?

1.  'undefined'----值未定义
2.  'boolean'  ----值是布尔值
3.  'string'   ----值字符串
4.  'number'   ----值是数值
5.  'object'   ----值是对象或nullnull被认为一个空对象引用)
6.  'function' ----值是函数
7.  'symbol'   ----值是符号

五、undefined和null区别?

undefined:使用var/let声明变量未初始化时。

null:空对象指针

建议初始化使用null而不是undefined,因为null表示空对象指针,保存一个对象的引用(这也是typeof返回Object的原因),而undefined变量未声明和未初始化都显示它。

null == undefined   //true   undefined派生自null