JavaScript 定义了几种数据类型? 哪些是原始类型?哪些是复杂类型?
JavaScript共定义了六种数据类型。分别为:
1.number:数值。整数和小数。
2.string:字符串。由零或多个16位Unicode字符组成的字符序列。
3.boolean:布尔值。Boolean类型只有两个字面量,分别是true和false。虽然true可以转换成数字值1,false可以转换成数字值0,但是true和false与数字值不是一个概念,因此true不一定等于1,false也不一定等于0。
4.undifined:undefined类型只有一个值,那就是undefined,在使用var操作符定义一个变量,但是并未给该变量赋值,也就是没有初始化,此时该变量的值就是undefined。
5.null:ull类型与Undefined类型一样,也是只有一个值null,当使用typeof操作符检测null值时,返回object,表明null为一个空对象指针。如果要声明一个变量用来保存对象,那么最好将该变量初始化为null而不是其他的值,这样只需要检测该变量是否为null值就可以确定该变量是否保存了一个对象的引用。
6.object:对象。Javascript中的对象其实就是一组数据和功能的集合,也可以说是一组无序的名值对的集合。
其中number、string、boolean被称为原始类型,object为复杂类型。
如何判断一个变量是否是数字、字符串、布尔、函数
用typeof运算符。
var a="aaa"
var b= 123
var c= 4>3
var d= ;
var e= function ( ) {}
typeof a //返回string;
typeof b //返回number;
typeof c //返回boolean;
typeof d //返回undefined;
typeof e //返回function
==与===有什么区别
==表示相等操作符,先转换再比较,转换之后比较相等则返回true;===表示全等操作符,仅比较而不转换,未经转换就相等则返回true。
以下代码的输出结果是?为什么?
console.log(1+1); //2,在两个操作数都是数字的时候,会做加法运算
console.log("2"+"4"); //24,两个都是字符串会拼接
console.log(2+"4"); //24,一个数值一个字符串,数值会被转化成字符串然后与另一字符串拼接
console.log(+"4"); //4,在只有一个字符串参数时会尝试将其转换成数值
以下代码的输出结果是?
var a = 1;
a+++a;
typeof a+2;
number2。原因:a+++a等于3,typeof3返回"number"是一个字符串,字符串与数值做加法,数值会被转化成字符串然后与另一字符串拼接,得到number2