JavaScript 定义了几种数据类型? 哪些是原始类型?哪些是复杂类型?原始类型和复杂类型的区别是什么?
Number类型,String类型,Boolean类型,object类型以及
undefined类型:表示未定义或不存在,即此处没有任何值。
null:表示空缺,此处应该有一个值,但目前为空。
number,string和boolean是原始类型(primitive type),他们是最基本的数据类型,不能在分了。
将对象称为复杂类型(complex type)的值,因为一个对象往往是多个原始类型的值的合成,可以看作是一个存放各种值的容器。
至于undefined和null,一般将它们看成两个特殊值。
typeof和instanceof的作用和区别?
typeof可以返回一个值的数据类型:
"undefined"——如果这个值未定义
"boolean"——如果这个值是布尔值
"string"——如果这个值是字符串
"number"——如果这个值是数值
"object"——如果这个值是对象或null
"function"——如果这个值是函数
typeof已经有非常强的数据类型检测能力,但是在面对object时,有时我们需要更清楚的知道他是什么类型的object。
alert(person instanceof Object);
alert(color instanceof Array);
如何判断一个变量是否是数字、字符串、布尔、函数
利用typeof。
NaN是什么? 有什么特别之处?
NaN含义是Not a Number,表示非数字,NaN和任何值都不相等,包括自己
如何把非数值转化为数值?
有三个函数可以将非数值转化为数值。
- Number()
- parseInt()
- parseFloat()
==与===有什么区别
==是相等操作符,如果两个数相等,则返回true,操作符会先转换数据类型再比较他们的相等性。===和==基本相同,但===不会转换操作数。
'55' == 55 \true
'55' === 55 \false
break与continue有什么区别
break是停止整个循环,跳出循环。
continue是停止本次循环,继续下次循环。
void 0 和 undefined在使用场景上有什么区别
undefined可以在局部作用域中被覆写void运算返回值始终都是undefined
以下代码的输出结果是?为什么?
console.log(1+1); //2
console.log("2"+"4"); //'24'
console.log(2+"4"); //'24' 一个是数字一个是字符串,数字转化为字符串后拼接
console.log(+"4"); //输出4,只有一个字符串会转换成数字输出
以下代码的输出结果是?
var a = 1;
a+++a; //3
typeof a+2; //number2 typeof的优先级高于+运算,所以输出字符串number,字符串与数字相加时,数字转换为字符串
以下代码的输出结果是? 为什么
var a = 1;
var b = 3;
console.log( a+++b ); //4
遍历数组,把数组里的打印数组每一项的平方
var arr = [3,4,5];
for(var i = 0; i<arr.length;i++)
console.log(arr[i]*arr[i]); /9,16,25
遍历 JSON, 打印里面的值
var obj = {
name: 'hunger',
sex: 'male',
age: 28
};
for(var i in obj){
console.log(i+":"+obj[i]);
}