js数据类型

192 阅读3分钟

[JS基础强化] 关于数据类型

JavaScript是一个弱数据类型语言。

JavaScript是动态语言,变量的数据类型是可以变化的。

JavaScript的变量类型只有在程序运行过程中根据等号右边的值才能确定数据类型。

Number

js中的数字包含整数浮点数和一些特殊数字。

1. 正/负整数
    let num1=123;  let num2=-123;
2. 正/负小数
    let num1=1.23; let num2=-1.23
3. NaN
    let num =NaN; // NaN 是特殊的数字类型,他意思是不是一个数字,而且他不与任何值相等也包括他自己。
4. MAX_VALUE/MIN_VALUE
    console.log(Number.MAX_VALUE) 1.7976931348623157e+308
    console.log(Number.MIN_VALUE) 5e-324
    最大输入值和最小输入值,超出这个值就会变成无穷大和无穷小,Infinity/-Infinity
5. MAX_SAFE_INTEGER/MIN_SAFE_INTEGER
   最大安全整数和最小安全整数(-(2^53 - 1) 到 2^53 - 1),
   这里安全存储的意思是指能够准确区分两个不相同的值,例如 `Number.MAX_SAFE_INTEGER + 1 === Number.MAX_SAFE_INTEGER + 2` 将得到 true 的结果,而这在数学上是错误的(MDN)。
   console.log(Number.MAX_SAFE_INTEGER) 9007199254740991
   console.log(Number.MIN_SAFE_INTEGER) -9007199254740991
6. Infinity/-Infinity
    无穷大和无穷小。
7. number的8进制
   在ES5时候数字前面是0表示八进制 但在es6即以后 要使用0o表示八进制 
   如 
       let number =0o17 //这里定义的是八进制
       console.log(number);//15
    //注意目前开发常转为ES5所以以0开头的数字可能会出现报错或警告。
8. number的16进制
        let number=0xA; //16进制
        console.log(number)//10

Boolean

    let a=true;
    let b=false;
    只有这两个值

String

    let str="";
    let str ='123';
    let str =`123`
    

Undefined

    let str; //undefined
    let str =undefined;//undefined

Symbol

    let sym= Symbol();
    let sym2= Symbol("这是第二个")
    可以传入一个参数,这个参数是对这个符号的描述
    可以通过这个描述字符串来调试代码但是这个字符串与符号表示完全无关

BigInt

在早期如果数字大于Number.Max_SAFE_INTEGER 则还是最大的数

有些时候想要表示大数

可以在后面加n

如 let num =1234567891011121314n

当然也可以使用科学计数法来表示

let num=10e+7;

Null 空型

如:var a=null  默认值null 专门用来表示一个为空的对象是Object类型

什么时候为null

1.手动赋值一个变量为nulllet obj= null console.log(obj) //null

2.页面没有指定的dom 元素

    如 let div =document.querySelecter(‘div’);

    console.log(div) null

3.Object.protptype.__ptoyo__的值为null

4. document和body的很多属性为nulldocument.body.offsetParent//null

    document.parentNode //null

Object 对象

对象就是一组数据和功能的集合,

对象的创建方式

使用new 创建
如 let obj =new Object();
       obj.name=’zs;
       obj.sayName=function(){
              log(this.name)
       }
使用字面量创建
    let obj={
        name:''
    }
使用 creat创建
Object.create()
使用Object.create 创建的对象 的隐式原型会默认指向这个参数的显示原型
如果 create 参数 是null 则 就不会有Object身上的属性和方法

...其他类型待补充(mapsetweakmapweakset等)