3. 数据类型
3.1原始类型(基础类型5)
Number 数值
整数 二进制、十进制、八进制、十六进制
小数(浮点数)
String 字符串
由文本字符组成,单引号或双引号(单引号里面放双引号,双引号里面放单引号),特殊字符需要转义(转义字符:\n 换行 \t tab \--->\ '--->' "--->")
Boolean 布尔值
true ---> 1 false ---> 0
Null 空、无
Undefined
含义:"不存在该数据"
声明变量未赋值,对象属性不存在
3.2 引用类型(内置对象 11)
Number(数值)、String(字符串)、Boolean(布尔)、Array(数组)、Error(错误)、Math(数学)、Date(日期)、RegExp(正则)、Function(函数)、Object(对象)、Global(全局)
4. 数据类型转换
4.1隐式类型转换 ("" ---> 0, 0 == "")
数字+字符串: 数字转换为字符串
数字+布尔值: true转换为1,false转换为0
字符串+布尔值: 布尔值转换为字符串true或false
布尔值+布尔值: 布尔值转换为数值1或0
"+"一个计算(相加,数值),一个拼接(字符串)
字符串与任何内容相加都是字符串(+)
4.2 typeof(内容)/typeof空格内容 返回的数据类型(6)
typeof 返回的结果 string(字符串)
值: "number" (原始类型 number,NaN)
"string" (原始类型 string)
"boolean" (原始类型 boolean)
"undefined" (原始类型 undefined)
"object" (剩下的10个内置对象+null)
"function" (function 对象)
4.3 强制类型转换
1.toString() 转换称为字符串
var num = 100;
var str = num.toString();
2. parseInt() 转化成为整数(只取整数部分,字符串的开头是数值和(+/-)加数值,都可以转化为数值,其他都转化为NaN(不是数字))
var numa = 100.89675;
console.log(parseInt(numa)); // 100
var stra = "100.00786hahahahahaha";
console.log(parseInt(stra)); // 100
3. parseFloat() 转换成为浮点数(取整数部分和小数部分,字符串的开头是数值和(+/-)加数值,都可以转换为数值,其他都转化NaN(不是数字))
var stra = "100.00786hahahaha";
console.log(parseFloat(stra));
4. Number() 转化成为数值(相当于隐式类型的自动转化 "9a" ---> Number("9a")) ---> (string 像数值 ---> 数字,不是就是NaN(不是数字))
5. isNaN() 判断是不是数字;是数字false,不是数字true
console.log(isNaN("hahaha")); // true
console.log(isNaN(100)); // false
console.log(isNaN("5a")); // true
console.log(isNaN("+5")); // "+5" ---> 5 false
NaN与任何能容忍计算结果都是NaN(拼接除外)
var sum = "hahaha"+NaN; // 拼接
console.log(sum); // hahahaNaN
var sum2 = 100 + NaN; // 计算
console.log(sum2); // NaN
NaN不等于任何内容,包括它自己
console.log(NaN === NaN); // false
console.log(NaN == NaN); // false