Undefined类型
该类型只有一个值就是undefined
在定义一个变量的时候没有赋初值,默认就是undefined
var box = undefined; //该操作没有任何意义
Boolean类型(类class)
这个类型有两个值 true false
逻辑运算:等于(==)、全等(===)、不等于(!=)、取反(!)
在JS中,==表示比较(只相等就可以,可以是转换之后的值),=表示赋值,===表示全等判断(表明了值以及类型都必须相等)
Boolean() 用来进行数据类型的转换,将其他数据类型转换为Boolean类型
NaN、""、null、undefined是可以直接转换为false的(自身可以转换)
Number类型
该数值中必须包含一个小数点,并且小数点后面必须至少有一位非零数字
var box = 7.8; var box = .8; //不推荐大家使用,可读性不强 var box = 3.0; //对于这样的数,js底层会进行判断,会自动转换为整型 //(原因:因为浮点型存储空间是整型的两倍,节省内存空间)
JS在做运算时不严谨
console.log((0.1 * 10 + 0.2 * 10) / 10); //0.3 console.log(0.1 + 0.2 == 0.3); //false 0.1 + 0.2 = 0.30000000000000004
toFixed(n) 保留n位有效数字,返回一个字符串
将数值调用toString()转换为字符串(能够进行四舍五入)
NaN:表示一个本来要返回数字类型的值,但是没有正确的返回数字类型
12/0(java中会报错)
0/0 isNaN() 是在window中存在的一个方法,会有数据类型的转换
Number转型函数有三个:Number()、parseInt()、parseFloat()
Number(); 用于任何数据类型转换成数值
parseInt(); 从左往右寻找能认识的数字,找到一个不认识的就停止,返回之前认识的(如果最开始就不认识则返回NaN),不认识小数点
parseFloat(); 比parseInt多认识一个小数点
转型为Number有三个方法:
1、Number() 适用于任意数据类型的转换
2、parseInt()、parseFloat() 适用于字符串的转换
Number(n) 将n强制的转换为数值型
var box = "25x"; console.log(Number(box)); //NaN
true → 1 false → 0
var box = null; //先将null转换为false,然后变为0 var box = undefined; //NaN var box = ""; //0
对于对象转数值:首先调用valueof(),如果没有然后再调用toString();
String类型
创建String类型的两种方式
1、字面量的形式(推荐大家使用)
2、new运算符的形式
var box = "king"; var box1 = new String("king");
String.prototype 可以用来查看String类型的原型对象上所有的方法和属性,任何字符串都可以使用String类型的所有方法和属性
Object类型
js中万物皆对象
类是对象的具体细分,实例是类的具体表现
创建对象有三种方式
1、字面量的形式
var box = {};
2、new运算符的形式
var box = new Object();
3、Object,create({}) //不常用
var obj = { name:"king" }; var box = Object.create(obj);
对象中可以包含任意的数据类型
key: value 一 一对应的
key:属性名
value:属性值
每一个键值对之间都是以逗号进行分割的,最后一个不需要任何的标点符号
一个对象中属性名不能重复
对象两种获取值的方式
1、通过 . 运算符 点运算符后面接的都是确定的属性名
parent.job = “程序猿”
2、通过[ ] 中括号里面可以是一个字面量,也可以是一个变量名
var wg = "weight"; parent[wg] = "70kg"; parent[‘weight‘] = "70kg";
如果没有对应的属性,获取值会的得到一个undefined
在进行parent.job = "程序猿";操作时,如果原本对象中存在job属性则是对该属性的重新赋值,如果没有该属性就是新增该属性
删除对象上的属性:
delete parent.wg
对象中存在一个遍历的循环
for (当前循环到的属性名 in 对象名)
实现:
for (var item in parent) { // statement }
2021-06-22 10:47:57