JavaScript 定义了几种数据类型? 哪些是原始类型?## 哪些是复杂类型?原始类型和复杂类型的区别是什么?
六种数据类型 分别是 number string boolean null undefined object 其中原始类型有number string boolean , 复杂类型有 object, 一般将null 和 boolean 看成两个特殊值
原始类型不能再细分了,它们是最基础的类型
复杂类型一般是多个原始类型的值的集合
typeof和instanceof的作用和区别?
typeof 的用法是 typeof XX;判断基本类型,返回的值为各自的类型,比较特殊的是 type of function 返回 function, type of object 和 type of 数组 都返回对象 object
instanceof 的用法是 XX instanceof 类型 , 用来判断某个变量是不是某个对象的实例,返回值为true false
由于 type of object 和 type of [1,2,...] 都会返回object;所以用instance of 来判断object 和 数组
返回的值不同,参数不同
如何判断一个变量是否是数字、字符串、布尔、函数
用 type of 来判断,根据返回值来确定
返回值为 number 对应number 类型
返回值为string 对应 string 类型
返回值为boolean 对应boolean 类型
返回值值为 function 对应 function 类型
或者
typeof x === 'number'
typeof x === 'string'
typeof x === 'boolean'
typeof x === 'function'
NaN是什么? 有什么特别之处?
NaN 属性用于引用特殊的非数字值,属于number类型。
特别之处
说明
无法使用 for/in 循环来枚举 NaN 属性,也不能用 delete 运算符来删除它。
NaN 与所有值都不相等,包括它自己。
如何把非数值转化为数值?
可以用 number() parseInt() parseFloat() 方法
==与===有什么区别
== 比较前不同类型会强制转换类型再进行比较
=== 不会转换类型,直接比较,返回值为 true false
break与continue有什么区别
break 的作用是跳出当前循环体语句
continue 的作用是跳出当前次数循环进行下一次循环
void 0 和 undefined在使用场景上有什么区别
void操作符会执行后面的表达式并返回undefined。由于undefined在函数中可以赋值,所以进行判断某一变量是否未定义时常使用void 0.
以下代码的输出结果是?为什么?
console.log(1+1); 2
都是number类型 想加为2
console.log("2"+"4"); "24"
字符串相加 结果为字符串连接
console.log(2+"4"); "24"
数字字符串相加 数字会转换为string类型
console.log(+"4"); 4
+ 作用是转为number类型
以下代码的输出结果是?
var a = 1;
a+++a;
typeof a+2;
"number2" typeof a 结果为"number",加2 字符串拼接
以下代码的输出结果是? 为什么
var a = 1;
var b = 3;
console.log( a+++b );
4
a++ 运算级优先,还是1 ,1+3 =4
遍历数组,把数组里的打印数组每一项的平方
var arr = [3,4,5]
for(var i =0 ; i< arr.length ; i ++ ){
console.log(arr[i]);
}
遍历 JSON, 打印里面的值
var obj = {
name: 'hunger',
sex: 'male',
age: 28
}
for ( var i in obj ){
console.log(obj[i]);
}
以下代码输出结果是? 为什么 (选做题目)
var a = 1, b = 2, c = 3;
var val = typeof a + b || c >0
console.log(val)
2
按运算优先级
( typeof a + b ) || c>0
var d = 5;
var data = d ==5 && console.log('bb')
console.log(data)
undefined
ture && undefined 结果为 undefined
var data2 = d = 0 || console.log('haha')
console.log(data2)
undefined
var data2 = d = 0 输出0
0 || console.log('haha')
0 || undefined
结果为 undefined
var x = !!"Hello" + (!"world", !!"from here!!");
console.log(x)
2
! 强制转换类型为true false ()返回后一位的值
true + true = 2