JS的组成是由ECMAJavascript,DOM,BOM组成
DOM文档对象模型
BOM浏览器对象模型
\
JS数据类型
Number 数字类型
不区分整数、浮点数(非整数)、特殊值,都是Number类型
String 字符串类型
undefined 类型
undefined 本身就是一个数据,表示未定义,变量只声明不赋值的时候,值默认的就是undefined
Boolean 布尔类型
Boolean:只有true,false 两个,必须是小写
计算机内部存储:true为 1 ,false为 0
null 类型
null本身就是一个数据,从逻辑角度,null值表示一个空对象指针
如果定义的变量准备在将来使用,最好该变量初始值为null
Object 对象类型 (复杂数据类型 / 引用数据类型)
\
面试题:
null类型就是null,之所以typeof会检测出object类型,是typeof的问题,与null的类型无关
解决方法, 使用object.prototype.toString.call(null)
var a = null
console.log(Object.prototype.toString.call(a))
\
数据类型检测
为什么要检测数据类型?
JS语言是一门动态类型的语言,变量并没有一个单独的数据类型,而是随着内部存储数据的变化而变化(数据类型的变化)
变量的数据类型,与内部存储数据有关
将来使用变量时,需要知道内部存储的数据是什么类型,避免程序出错
\
\
使用typeof的方法进行数据检测
检测方法:在typeof后面加小括号执行,将要检测的数据放在小括号内部
\
\
不看这个
数据类型的转换:
转数值:
Number数字类型转换方法
转型函数Number()可以用于任何数据类型,将其他数据类型转为数字
字符串:纯数字字符串转为对应数字,空字符串和空白字符串撰文0,非空非纯数字字符串转为NaN
布尔值:true转为 1 ,false转为 0
undefined:转为NaN
null:转为0
parseInt()方法,字符串转转化整数
parseFloat()方法,字符串转化小数
\
\
其他数据类型转成数值
1.Number(变量)
可以把一个变量强制转换成数值类型
可以转换小数,会保留小数
可以转换布尔值
遇到不可转换的都会返回NaN
2.parseInt(变量)
从第一位开始检查,是数字就转换,直到一个不是数字的内容
开头就不是数字,那直接会返回NaN
不认识小数点,只会保留整数
3.ParseFloat(变量)
从第一位开始检查,是数字就转换,直到一个不是数字的内容
开头就不是数字,那么直接返回NaN
认识一次小数点,会保留小数
扩展:4.除了加法意外的数学运算
运算符两遍都是可运算数字才行
如果运算符任何一边不是一个可运算数字,那么就会返回NaN
加法不可以用
\
\
\
其他数据类型转换成字符串
1.变量.toString()
有一些数据类型不能使用toString()方法,比如undefined和null
2.String(变量)
所有数据类型都可以
扩展:3.使用加法运算
在JS里面,+有两个 含义
字符串拼接:只要+任意一边是字符串,就会进行字符串拼接
加法运算:只有+两边都是数字的时候,才会进行数学运算
\
string所有类型都可以转成字符串
toString 是null和undefined是转换不了的
\
\
\
其他数据类型转成布尔类型
1.Boolean(变量)
在JS中,只有""(空)、0、null、undefined、NaN、这些是false
其余都是true
\