Js数据类型

 基本数据类型:Number,String,Boolean,Ubdefined,Null(  Boolean类型true为真,false为假)

复杂数据类型:Object,Array,Function,RegExp,Date,Map,Set

/* 复杂数据类型都是‘引用类型,

   基本数据类型,内存中产生一个新的副本,比较值是否相等,

   引用数据类型,不产生新的副本,而是让新变量指向同一个对象 比较内存地址是否相同,也是  比较是否是同一个对象 */

undefined:一个没有被赋值的变量默认是undefined,undefined的类型也是undefined(又是值又是数据类型)

null类型是什么?

null表示‘空’,它是空对象

当我们需要将对象销毁,数组销毁,或者删除事件监听时,通常将他们设置为null

typeof (检测值或者变量的类型) null类型检测是object,数组检测也是object,function检测是function类型和typeof检测结果并不总是一一对应的,

 null作为一个基本数据类型为什么会被typeof运算符识别为object类型呢?

这个bug是第一版Javascript留下来的,javascript中不同对象在底层都表示为二进制,

而javascript 中会把二进制前三位都为0的判断为object类型,而null的二进制表示全都是0,

自然前三位也是0,所以执行typeof时会返回 ‘object’。

undefiend和null的区别

undefined是访问一个未初始化的变量时返回的值,而null是访问一个尚未存在的对象时所返回的值 因此,可以把undefined看作是空的变量,而null看作是空的对象

(摘自:https://www.ruanyifeng.com/blog/2014/03/undefined-vs-null.html)

null表示"没有对象",即该处不应该有值。典型用法是:

         (1) 作为函数的参数,表示该函数的参数不是对象。

         (2) 作为对象原型链的终点。Object.getPrototypeOf(Object.prototype)

            undefined表示"缺少值",就是此处应该有一个值,但是还没有定义。典型用法是:

          (1)变量被声明了,但没有赋值时,就等于undefined。

          (2) 调用函数时,应该提供的参数没有提供,该参数等于undefined。

          (3)对象没有赋值的属性,该属性的值为undefined。

          (4)函数没有返回值时,默认返回undefined。

         isNaN检测一个值是否为NaN,是的话是true,不是为false

          console.log(a)//undefiend

           console.log(typeof a)//undefined

            var a = 10;

        //字符串的常用方法

        var b = "aaakdddd"

        console.log(b.charAt(0))//获取指定位置的字符

  substring()、substr()和slice()方法

(摘自:https://blog.csdn.net/FrebEaton/article/details/118584990)

         //substring()

        //substring(a, b) 方法得到从a开始到b结束(不包括b处)的子串

        //如果省略第二个参数,返回的子串会一直到字符串的结尾

        //a可以大于b,数字顺序将自动调整为小数在前

        //substr (a, b)中,将得到从a开始的长度为b的子串,

         //b可以省略,表示到字符串结尾.a可以是负数,表示倒数位置

         //slice(a, b)方法得到从a开始到b结束(不包括b处)的子串

         //slice(a, b)的参数a可以是负数slice(a, b)中,参数a必须小于参数b

        /*对比总结

       substring(a, b)和slice(a, b)功能基本一致,都是得到从a开始到b

        结束(不包括b)的子串,区别:

        ① substring()可以自动交换两个参数位置,而slice()不行;

        ②slice()的参数a可以是负数,而substring()不行。

         substr(a, b)中参数b是子串长度,而不是位置编号*/     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值