1.JavaScript 定义了几种数据类型? 哪些是简单类型?哪些是复杂类型?
基本数据类型:
- 简单数据类型:
- number数据类型 —— var num=123;
- string数据类型 —— var str=“abcdefg”;
- boolean数据类型 —— var bool=false;
- 特殊数据类型:
- 未定义undefined —— var a;
- 空 null —— var a=null;
复杂数据类型:
- object —— var obj={“name”:“茶姬”,“age”:“14”};
2:NaN、undefined、null分别代表什么?
-
NaN
表示非数字 属于数字类型。NaN和任何值都不等于包括自己
null :表示空值,即该出的值现在为空
用法: 1. 作为函数的参数,表示该函数的参数是一个没有任何内容的对象. 2. 作为对象原型链的终点undefined:表示不再在的值。即此处不存在任何值
法 1. 变量被声明,但没有赋值时,等于undefined. 2. 调用函数时,没有提供相应的参数,该参数等于undefined. 3. 对象没有赋值属性,该属性的值为underfined. 4. 函数没有返回值时,默认返回undefined.
3:typeof和instanceof的作用和区别?
- 作用
typeof
: 一般只能返回如下几个结果:number,boolean,string,function,object,undefined。对于 Array,Null 等特殊对象使用 typeof 一律返回 object,这正是 typeof 的局限性。
instanceof
用于判断一个变量是否某个对象的实例 - 区别
-
typeof
用于区别简单数据类型;instanceof
用于识别变量是否属于该对象 -
typeof
在运算一个引用类型时是有局限的,无法判断其是哪种函数的实例,此时就需要用到instanceof
-
4:完成如下代码判断一个变量是否是数字、字符串、布尔、函数
5:以下代码的输出结果是?
6:以下代码的输出结果是?
7
第二句中a的声明被提升到顶部,a未赋值,所以
第一个console输出undefined。
第二个console输出时a已经被赋值为1所以输出1.
第三个console输出的b未被声明所以出现错误。