JavaScript 定义了几种数据类型? 哪些是原始类型?哪些是复杂类型?原始类型和复杂类型的区别是什么?
1.Number 2.string 3. Boolean 4.object 5.null 6.undefined 7. symbol
原始类型(基本类型):1.Number 2.string 3. Boolean 5.null 6.undefined 7. symbol
复杂类型: 4.object
区别:复杂数据类型是多个原始数据类型的集合,原始数据类型不能再细分,不是对象也没有方法。
typeof和instanceof的作用和区别?
typeof可以用来检测原始类型和函数类型以及undefined,判断对象类型和null只能返回object.
instanceof用来判断左边对象的原型链上是否有右边构造函数的prototype属性,instanceof可以用来判断对象类型
如何判断一个变量是否是数字、字符串、布尔、函数
typeof 123 === 'number' //判断是否是数字
typeof '123' === 'string' //判断是否为字符串
typeof true ==='boolean' //判断是否为布尔
typeof a ==='function' //判断是否为函数
NaN是什么? 有什么特别之处?
全名Not a Number. 类型是Number
1.NaN不等于任何值 包括它本身
2.任何涉及NaN的操作都会返回NaN
如何把非数值转化为数值?
var a="456"
1. parseInt(a);
2. parseFloat(a);
3. Number(a);
4. a*1;
5. +a
==与===有什么区别
=== 只会在比较的两个值不经过任何转换就相等的情况下返回 true。
break与continue有什么区别
break会直接跳出当前循环体。
continue会跳过当次循环进入下次循环。
void 0 和 undefined在使用场景上有什么区别
void运算符的作用是执行一个表达式,然后返回undefined。undefined被赋值后,或者我们无法判断undefined是否被赋值时,可以使用void 0
以下代码的输出结果是?为什么?
console.log(1+1); // 2 数字+数字=数字
console.log("2"+"4"); // 24 字符串+字符串=字符串拼接
console.log(2+"4"); // 24 数字+字符串 = 字符串拼接
console.log(+"4"); // 4 Number("字符串")
以下代码的输出结果是?
var a = 1; // undefined
a+++a; // 3
typeof a+2; // "Number2"
以下代码的输出结果是? 为什么
var a = 1;
var b = 3;
console.log( a+++b ); // 4
输出结果是4,先执行的是a++部分,这部分运算完成之后仍然为1,但是此时a为2了,所以结果为1+3=4。
遍历数组,把数组里的打印数组每一项的平方
var arr = [3,4,5];
arr.forEach(function(item){
console.log(item*item);
})
遍历 JSON, 打印里面的值
var obj = {
name: 'hunger',
sex: 'male',
age: 28
}
for(var i in obj){
if(!obj.hasOwnProperty(i)){continue;}
console.log(obj[i]);
}
以下代码输出结果是? 为什么 (选做题目)
var a = 1, b = 2, c = 3;
var val = typeof a + b || c >0
console.log(val)
// "Number2"
1. typeof a 结果为 "Number"
2. b || c >0 结果为 2
3. var val = "Number"+2 结果为"Number2"
var d = 5;
var data = d ==5 && console.log('bb')
console.log(data)
// bb undefined
1. (d ==5) && (console.log('bb')) 返回console.log('bb')的求值结果,即undefined.
2. var data = undefined
var data2 = d = 0 || console.log('haha')
console.log(data2)
// "haha"
// undefined
1. 0 || console.log('haha') 结果为 undefined
2. d=undefined
3. data2=undefined
var x = !!"Hello" + (!"world", !!"from here!!");
console.log(x)
// 2
1. (!"world", !!"from here!!") 返回!!"from here!!" 结果为1
2. !!"Hello" 结果为 1
3. var x = 1+1 结果为2