JavaScript 学习笔记——内置类型

链接: https://blog.csdn.net/lareinalove/article/details/79895760.
链接: https://blog.csdn.net/u013592575/article/details/95087953.


内置类型分为基本类型和引用类型

基本类型(单类型)

1.number类型

  1. number类型包含整数浮点数(浮点数数值必须包含一个小数点,且小数点后至少有一位数字);
  2. 浮点数小数点后均为0时,自动转换为整型;
  3. 浮点数最高精度为17位(浮点数计算误差问题);
  4. NAN属于number:
    4.1. 非数字类型,特点:涉及到任何关于NaN的操作,都会返回NaN,而且NaN不等于自身;
    4.2. isNaN()函数:用于判断是否是一个非数字类型,如果传入的参数是一个非数字类型,那么返回true,否则返回false。
let a = 'test'
let b = a/3
isNaN(b)	//true
  1. 数值转换:
    Number(),转型函数,可以用于任何数据类型
    parseInt(),将值转换为整型,用的较多
    parseFloat(),将值转换为浮点型

2.string类型

  1. 单双引号作用相同
  2. 字符串有length属性,可以取得字符串的长度 ( a.length )
  3. 字符串的值是不可变的,要改变一个字符串的值,首先要销毁原来的字符串,再用另一个包含新值得字符串区填充该字符串
  4. 字符串转换:
    String(),转型函数,适用于任何数据类型(null,undefined转换后为null和undefined)
    toString(),可以把一个逻辑值转换为字符串,并返回结果(null、undefined没有toString()方法)
    区别:null和undefined没有toString()方法

3.Boolean类型

1.两个值:true & false
2. Boolean():转型函数,将某个值转换为Boolean类型

4.null类型

  1. null类型被看做空对象指针,只有一个值,即null值,所以在用typeof操作符去检测null类型的值得时候,结果是object类型
  2. 如果定义了一个变量,想在以后把这个对象当做一个对象来使用,最好将该对象初始化为null值

5.undefined类型

  1. 只有一个值,即undefined
  2. 如果声明了一个变量,但是未给变量初始化值,那么这个变量的值就是undefined
  3. 调用函数时,应该提供的参数没有提供,该参数等于undefined;
  4. 对象没有赋值的属性,该属性的值为undefined;
  5. 函数没有返回值,默认返回undefined。

6.symbol类型(ES6)

  1. Symbol 类型的对象永远不相等,即便创建的时候传入相同的值。因此,可以用解决属性名冲突的问题(适用于多少编码),做为标记。
  2. 这是 es6 新增的数据类型。

7.bigInt类型(chorme 67)

  1. Javascript 中的任意精度整数,可以安全存储和操作大整数。即始超出 Number 能够表示的安全整数范围。是 chrome 67中的新功能。

对象类型(引用类型)

object

  1. ECMAjavascript中的对象是一组数据和功能的集合

  2. 对象可以通过执行new操作符后跟要创建的对象类型的名称来创建。创建object类型的实例并为其添加属性(或)方法,就可以自定义创建对象。

     如:var o = new Object( );
    
     object 的每个实例都有下列属性和方法:
    
     constructor:保存着用于创建当前对象的函数。(构造函数)constructor就是object();
    
     hasOwnProperty(propertyName):用于检查给定的当前属性在当前对象实例中)而不是在实例原型中)是否存在。其中,作为参数的属性名(propertyName)必须以字稚串形式指定(例如:o.hasOwnProperty(“name”))。
    
     isPrototypeOf(object):用于检查传入的对象是否是传入对象原型。
    
     propertyIsEnumerable(propertyName):用于检查给定属性是否能够用for-in语句。与hasOwnProperty()方法一样,作为参数的属性名必须以字符串形式指定。
    
     toLocaleString( ):返回对象的字符串表示,该字符串与执行环境的地区对应。
    
     toString( ):返回对象的字符串表示。
    
     valueOf( ):返回对象的字符串、数值或者布尔值表示。通常与toString( )方法的返回值得相同。
    
     ECMAJS中object是所有对象的基础,因些所有对象都具有这些基本的属性和方法。
    

浅拷贝与深拷贝

链接: https://www.jianshu.com/p/cf1e9d7e94fb.

  1. 理解:
    浅拷贝和深拷贝都只针对于引用数据类型,浅拷贝只复制指向某个对象的指针,而不复制对象本身,新旧对象还是共享同一块内存;但深拷贝会另外创造一个一模一样的对象,新对象跟原对象不共享内存,修改新对象不会改到原对象。
  2. 根本区别:
    是否真正获取一个对象的复制实体,而不是引用。
    换言之,浅拷贝只复制对象的第一层属性、深拷贝可以对对象的属性进行递归复制。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值