一,JavaScript 定义了几种数据类型? 哪些是原始类型?哪些是复杂类型?原始类型和复杂类型的区别是什么?
- 1.JavaScript定义了六种数据类型有:
数值(number):整数和小数(比如1和3.14)
字符串(string):字符组成的文本(比如"Hello World")
布尔值(boolean):true(真)和false(假)两个特定值
undefined:表示“未定义”或不存在,即此处目前没有任何值
null:表示空缺,即此处应该有一个值,但目前为空
对象(object):各种值组成的集合 - 原始类型:数值(number),字符串(string),布尔值(boolean)
- 复杂类型:对象(object)
- undefined 和 null 一般看成两个特殊值
- 区别:原始数值是最基本的类型不能再细分了;复杂类型是多个原始类型的值的合成,可以看作是一个存放各种值的容器。
二,typeof和instanceof的作用和区别?
- tyoeof可以返回一个值的数据类型。typeof几乎不可能得到它们想要的结果。typeof只有一个实际应用场景,就是用来检测一个对象是否已经定义或者是否已经赋值。而这个应用却不是来检查对象的类型。
- instanceof 运算符用来检测 constructor.prototype 是否存在于参数 object 的原型链上。
三,如何判断一个变量是否是数字、字符串、布尔、函数
- 利用typeof就可以判断,因为数值、字符串、布尔值、函数分别返回number、string、boolean、function。
四,NaN是什么? 有什么特别之处?
- NaN是not a number,表示非数字,NaN和任何值都不相等,包括自己。
五,如何把非数值转化为数值?
- Number()将参数转换成数字类型
- parseInt()将参数转化为整数
- parseFloat()将参数转化成浮点数
六,==与===有什么区别
- ==表示近似相等等号两边的参数经过转换后值相等即可输出true,否则输出false;===表示绝对相等参数不经过转换,输出true ,否则false。
七,break与continue有什么区别
- break:跳出循环(作用域)返回上一个作用域
continue;跳过该次循环,开始下一次循环
八,void 0 和 undefined在使用场景上有什么区别
- void0 运算返回值始终都是 undefined
undefined 可以在局部作用域中被覆写
九. 以下代码的输出结果是?为什么?
进阶2-3.png十,以下代码的输出结果是?
进阶2-4.png十一,以下代码的输出结果是? 为什么
进阶2-5.png十二,遍历数组,把数组里的打印数组每一项的平方
进阶2-1.png十三,遍历 JSON, 打印里面的值
进阶2-2.png十四,以下代码输出结果是? 为什么 (选做题目)
1. 进阶2-6.png根据优先级typeof a为最高输出“number”,因为b=2可以得到“number2”,由于是 || 或运算符,所以左边成立,右边即可忽略。通过console.log(val) 的时候,就去掉了""得到number2。
根据赋值运算符优先级低,而&&运算只有两项都为true时才为true,一个为false就返回false。运算如下:true && 'bb',因为非空字符串的布尔值时true,所以该表达式的值为true,因此返回‘bb'。
因为赋值运算符优先级低,而||运算只要一个为true就返回true。运算如下:0 || 'haha' => 0 || true,返回true,因此把字符串返回并复制给d和data2。
根据 。因为!为逻辑非运算,取值的逻辑值相反,两个!即相当于值原本的逻辑值。逗号运算符返回第二项,又因为非空字符串的逻辑值时true,而布尔值做加法运算时,true转为1,false转为0。因此运算如下:true + (!"world", !!"from here!!") => true + !!"from here!!" => true + true => 1 + 1 => 2.
网友评论