JavaScript 定义的数据类型。原始类型&复杂类型。原始类型&复杂类型的区别。
- ‘5’种简单数据类型(基本数据类型) + ‘1’种复杂类型
- boolean
- number
- string
- null
- undefined
- object (复杂类型)
数值、字符串、布尔值称为原始类型(primitive type)的值,即它们是最基本的数据类型,不能再细分了。
将对象称为复杂类型(complex type)的值,因为一个对象往往是多个原始类型的值的合成,可以看作是一个存放各种值的容器。
至于undefined和null,一般将它们看成两个特殊值。
typeof和instanceof的作用&区别。
- typeof 检测所属类型..
- instanceof 运算符用来检测 constructor.prototype 是否存在于参数 object 的原型链上。
判断一个变量是否是数字、字符串、布尔、函数
这深奥的问题...上图已经一目了然...
NaN&它的特别
Not A Number....不是一个数...(很好理解..)
特点:他不是(不等于)他自己
NaN != NaN
> true
把非数值转化为数值。
Number()
parseInt()
parseFloat()
==与===有的区别
-
===
:严格相等,不转换直接比较。 -
==
:相等,javascript会帮我们做类型转换后再比较。
break与continue有的区别
break
,触发时,退出,不再循环。
container
触发时,退出,终止本次循环,进入下一次循环。
void 0 & undefined在使用场景上有的区别
undefined在JavaScript中并不属于保留字/关键字,因此在IE5.5~8中我们可以将其当作变量那样对其赋值(IE9+及其他现代浏览器中赋值给undefined将无效)
于是采用void方式获取纯正的未经赋值的undefined则成了通用准则。
还是来点手链吧:🍗🍗🍗🍗🍗🍗🍗🍗🍗🍗🍗🍗🍗🍗🍗
console.log(1+1);
控制台: 2;
console.log("2"+"4");
控制台:字符串“6”
console.log(2+"4");
控制台:字符串“24”
console.log(+"4");
控制台:4;
var a = 1;
// 声明 a = 1
a+++a; // (a++)+a
结果:2
typeof a+2;
// (typeof a)+2 结果:"number2"
var a = 1;
//声明 a = 1
var b = 3;
//声明 b = 3
console.log( a+++b );
控制台:(a++)+b 结果:4
var arr = [3,4,5]
// for(i=0; i<arr.length; i++){ console.log (arr[i] * arr[i]) }
var obj = { name: 'hunger', sex: 'male', age: 28 }
// for(x in obj){ console.log(x + ":" + obj[x]) }
var a = 1, b = 2, c = 3; var val = typeof a + b || c >0
// "number2"
console.log(val)
var d = 5; var data = d ==5 && console.log('bb')
//Undefined
console.log(data)
var data2 = d = 0 || console.log('haha')
//Undefined
console.log(data2)
var x = !!"Hello" + (!"world", !!"from here!!");
// 2
console.log(x)