1.JavaScript 定义了几种数据类型? 哪些是原始类型?哪些是复杂类型?原始类型和复杂类型的区别是什么?
- 六种数据类型
- 数值:原始类型
- 字符串:原始类型
- 布尔值:原始类型
- undefined
- null
- 对象:复杂类型
- 区别: 原始类型存储在堆,复杂类型存储在栈(地址),指向堆中的数据
2.typeof和instanceof的作用和区别?
- typeof:返回一个值的数据类型
- instanceof:用来判断一个实例是否某个对象的实例
-区别:typeof用来获取数据类型,为单目运算符;instanceof可以区分对象中的实例,为双目运算符
3.如何判断一个变量是否是数字、字符串、布尔、函数
typeof 123 === 'number'
typeof '123' === 'string'
typeof true === 'boolean'
typeof a === 'function'
4.NaN是什么? 有什么特别之处?
- Not a number, 表示非数字
- NaN和任何值都不相等,包括自己
5.如何把非数值转化为数值?
- Number()
- parseInt()
- parseFloat()
6.==与===有什么区别
- ==: 相等,有类型处理
- ===:严格相等,与C语言的“==”一样
7.break与continue有什么区别
- break用于强制退出循环体,执行循环后面的语句
- continue 用于退出本次循环,执行下次循环
8.void 0 和 undefined在使用场景上有什么区别
- void运算符的作用是执行一个表达式,然后返回undefined,所以前者在函数中,作为返回值的一种判断
9.以下代码的输出结果是?为什么?
console.log(1+1); //2
console.log("2"+"4"); //"6"
console.log(2+"4"); //“24”,拼接功能
console.log(+"4"); //4,正负号的数值功能
10.以下代码的输出结果是?
var a = 1;
a+++a; //3
typeof a+2; //"number2"
11.以下代码的输出结果是? 为什么
var a = 1;
var b = 3;
console.log( a+++b ); //4,++运算符优先级比+运算符高
12.遍历数组,把数组里的打印数组每一项的平方
var arr = [3,4,5]
for (var i = 0; i <= arr.length-1; i++) {
console.log(arr[i] * arr[i]) ;
}
13.遍历 JSON, 打印里面的值
var obj = {
name: 'hunger',
sex: 'male',
age: 28
}
for (prop in obj) {
console.log(prop + ": " + obj[prop]);
}
14.以下代码输出结果是? 为什么 (选做题目)
var a = 1, b = 2, c = 3;
var val = typeof a + b || c >0 // (typeof a) + 2
console.log(val) // number2
var d = 5;
var data = d ==5 && console.log('bb') // data= ((d==5) && 'bb')
console.log(data) //'bb'
var data2 = d = 0 || console.log('haha') //data=(d=(0 ||'haha'))
console.log(data2) //'haha'
var x = !!"Hello" + (!"world", !!"from here!!"); //x= (true + true)
console.log(x) //2
网友评论