3包装对象:https://www.imooc.com/video/5676

    当我们尝试把基本类型已对象的方式访问时,javascript会把该基本类型转换为对应的包装类型对象(临时对象),相当于new了一个新对象,且新对象的值和原基本类型一样,当完成访问和操作,临时对象会被销毁掉。

    var a="string";

    alert(a.length);//6

    a.t=3;//成功未报错

    alert(a.t);//undefined   临时对象已被销毁

    ‘str’----String Object

    123----Number Object

    true---Boolean Object

4类型检测:https://www.imooc.com/video/5677

    类型检测:

      typeof  返回字符串,适合函数对象(返回“function”)和基本类型的判断

      instanceof      判断对象类型,基于原型链判断  期望左操作数为对象,若不是对象是基本类型则直接返回false,期望右操作数必须是一个函数对象或者说函数构造器,若不是则会抛出typeerror异常。instanceof原理,判断左操作数的原型链上是否右边构造函数的prototype属性。

      //https://www.ibm.com/developerworks/cn/web/1306_jiangjj_jsinstanceof/

      Object.prototype.toString

      constructor

      duck type

    

        typeof 100 ——‘number’

        typeof true——‘boolean’

        typeof function——‘function’

        typeof undefined——‘undefined’

        typeof new Object()——‘object’

        typeof [1,2]——‘object’

        typeof NaN——‘number’

        typeof null——‘object’

    

        [1,2] instanceof Array===true

        new Object() instanceof Array===false

  任何一个构造函数都会有一个prototype对象属性,这个对象属性,将用于new出的对象的原型_proto_。

  对象实例的原型(_proto_)指向,对应构造函数的prototype

  不同window或iframe间的对象类型检测不能使用instanceof

Object.prototype.toString

  Object.prototype.toString.apply([])==='[object Array]';

  Object.prototype.toString.apply(function(){})==='[object Function]';

  Object.prototype.toString.apply(null)==='[object Null]';

  Object.prototype.toString.apply(undefined)==='[object Undefined]';

  IE6/7/8 Object.prototype.toString.apply(null)返回‘[object Object]’

任何一个对象都有constructor属性(constructor属性继承自原型)指向构造这个对象的构造器或函数,constructor可以被改写,所以使用的时候需要注意。

duck type 通过一些特征,判断一个对象是否属于某些类型。

类型检测小结:

typeof——

  适合基本类型和function的检测,遇到null失效(typeof null------object)

  可以用严格等于的方式判断null

Object.prototype.toString——

  适合基本类型,函数数组的判断

  

javascript深入浅出——学习笔记(包装对象和类型检测)的更多相关文章

  1. javascript深入浅出学习笔记

    一.数据类型:1.对象与对象是不相等的,比如:console.log(new Object() == new Object())//结果是false;console.log([1,2] == [1,2 ...

  2. javascript深入浅出——学习笔记(六种数据类型和隐式转换)

    在慕课之前学过JS深入浅出,最近发现很多东西都记不太清楚了,再复习一遍好了,感觉这个课程真的超级棒的,做做笔记,再添加一些学习内容

  3. javascript学习笔记(四) Number 数字类型

    数字格式化方法toFixed().toExponential().toPrecision(),三个方法都四舍五入 toFixed() 方法指定小数位个数  toExponential() 方法 用科学 ...

  4. javascript正则表达式 - 学习笔记

    JavaScript 正则表达式 学习笔记 标签(空格分隔): 基础 JavaScript 正则表达式是用于匹配字符串中字符组合的模式.在javascript中,正则表达式也是对象.这些模式被用于Re ...

  5. Python学习笔记_Python对象

    Python学习笔记_Python对象 Python对象 标准类型 其它内建类型 类型对象和type类型对象 Python的Null对象None 标准类型操作符 对象值的比較 对象身份比較 布尔类型 ...

  6. JavaScript正则表达式学习笔记(二) - 打怪升级

    本文接上篇,基础部分相对薄弱的同学请移步<JavaScript正则表达式学习笔记(一) - 理论基础>.上文介绍了8种JavaScript正则表达式的属性,本文还会追加介绍几种JavaSc ...

  7. JavaScript简易学习笔记

    学习地址:http://www.w3school.com.cn/js/index.asp 文字版: https://github.com/songzhenhua/github/blob/master/ ...

  8. JavaScript学习笔记-JSON对象

    JSON 是一种用来序列化对象.数组.数值.字符串.布尔值和 null 的语法.它基于 JavaScript 语法,但是又有区别:一些 JavaScript 值不是 JSON,而某些 JSON 不是 ...

  9. JavaScript学习笔记-基础语法、类型、变量

    基础语法.类型.变量   非数字值的判断方法:(因为Infinity和NaN他们不等于任何值,包括自身) 1.用x != x ,当x为NaN时才返回true; 2.用isNaN(x) ,当x为NaN或 ...

随机推荐

  1. WebApiClient与Asp.net core DI的结合

    1 WebApiClient 一款基于HttpClient封装,只需要定义c#接口并修饰相关特性,即可异步调用远程http接口的客户端库 WebApiClient WebApiClient.Exten ...

  2. &,^,|,的简化计算与理解

    (全部和2进制有关 , 凡是2的次方数都是独立数列,都要先分解再计算的,该计算方式仅供手工计算理解,电脑会自动进行换算的) (第二个等号后面为2进制的结果,不够位在前面补0,1为真,0为假)   A^ ...

  3. 15个常用的javaScript正则表达式

    1 用户名正则 //用户名正则,4到16位(字母,数字,下划线,减号) ,}$/; //输出 true console.log(uPattern.test("iFat3")); 2 ...

  4. v-if与v-show的使用

    vue中的v-if与v-show 区别:v-if='false'的会直接在html里删掉,浏览器中看html的结构不会有 v-show='false'只是样式为overflow:hidden; 所以很 ...

  5. git开发常用命令

    1.基本命令git branch 查看本地分支git branch -r 查看远程分支git checkout xxx 切换分支git pull origin master //从远程同步到本地,ma ...

  6. 运算符和Scanner的使用

    一 1.运算符:对常量或者变量进行操作的符号 2.算术运算符: 1)四则运算:+ - * / 2)取模运算:%(只看余数) 3)字符串连接:任何数据类型和字符串连在一起,都是字符串结果(+来连接) 4 ...

  7. 标识符and数据类型

    一,标识符 1.标识符用来给类,变量,包,方法等起名字的. 2.只能由字符,下滑线,美元符组成:这里的字符有大小写字母,中文字符,数字字符,但是符号只能有两个下划线和美元符. 3.不能由数字开头. 4 ...

  8. centos 7 selinux开启关闭

    1 查看selinux状态 [root@localhost ~]# sestatus SELinux status: disabled 2 关闭 零时关闭 [root@localhost ~]# se ...

  9. js操作文章、字符串换行

    操作前: 操作后: 第一步: 把中英文的逗号和顿号置换为 '\n’ support_unit = support_unit.replace(/,|,|./g, '\n')   第二步: //为了使\n ...

  10. jupyter notebook修改默认路径和浏览器

    1.jupyter notebook --generate-config 2.修改jupyter_notebook_config.py配置文件 3.修改默认路径: c.NotebookApp.note ...