• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com专业计算机教程网站
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure
您的位置:首页 > 网页设计 >html5 > JavaScript之包装对象

JavaScript之包装对象

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-03

本文主要包含HTML5教程,HTML5中国,JavaScript之包装对象,html5cn,html5资料,html5文章,html等相关知识,匿名希望在学习及工作中可以帮助到您
5.jpg


  ①一段你常用但却未必明白其真正底层原理的代码:
  • var word = s.substring(s.indexOf(" ")+1,s.length);
  • 复制代码
      如前面所说,这里变量s只是一个字符串原始类型,它怎么会有属性(s.length)和方法(s.indexOf()、 s.substring())呢?没错,这正跟我们正要介绍的包装对象有关。原因是:只要引用了字符串s的属性,JavaScript就会将字符串值通过调用new String(s)的方式转换成对象,这个对象继承了字符串(String)对象的方法,并被用来处理属性的引用。一旦属性引用结束,这个新创建的对象就会被销毁。

      同字符串一样,数字和布尔值也有各自的方法:通过Number()和Boolean()构造函数创建一个临时对象。存取字符串、数字或布尔值的属性时创建的临时对象就是包装对象。5种原始类型中的剩余两种null和undefined没有包装对象:访问它们的属性会造成一个类型错误(Uncaught TypeError)。明白了上面的代码,那么再看如下代码:
  • s.len = 4;//给它设置一个属性
  • var t = s.len;
  • 复制代码
      不认真的同学这里就会认为最后t就是等于4了。难道最后t不等于4吗?是的,最后t的值是undefined。想知道为什么请看继续看解析:原来以这里第二行代码只是创建了一个临时字符串对象,并给len属性赋值为4,随即销毁这个对象。而第三行又是通过原始字符串s创建一个新字符串对象(这个不是第二行代码创建的对象,第二行代码创建的对象已经被销毁了)并尝试读取其len属相,这个属性自然不存在,因此表达式的结果为undefined。这段代码说明了在读取字符串、数字和布尔值的属性值或方法(实际上是它们对应包装对象的属性值或方法)表现的像对象一样。但如果你试图给属性赋值,则会忽略这个操作:修改只是发生在临时对象身上,而这个临时对象并不会继续保留下来。

      注意:可通过String(),Number(),Boolean()构造函数来显示创建包装对象:
  • var S = new String(s);//一个字符串对象
  • var N = new Number(n);//一个数值对象
  • var B = new Boolean(b);//一个布尔对象
  • 复制代码
      JavaScript会在必要时将包装对象转换成原始值,因此上段代码中的对象S、N和B常常但不总是表现的和值s、n和b一样。"=="等于运算符将原始值和其包装对象视为相等,但“===”全等运算将它们视为不等。通过typeof运算符也可以看到原始值和其包装对象的不同:

      ①typeof(s);  ->"string"
      typeof(S);  ->"object"

      ②typeof(n);  ->"string"
      typeof(N);  ->"object"

      ③typeof(b);  ->"string"
      typeof(B);  ->"object"

      本文作者:Craftsman_Gao
       原文链接:http://www.cnblogs.com/craftsman ... /07/08/4631501.html
       本站中的所有文章仅以学习和交流为目的,如果我们的工作有侵犯到您的权益,请及时联系站长QQ:2601929995,我们会在第一时间进行处理!


    您可能想查找下面的文章:

    • 一款利用html5和css3动画排列人物头像的实例演示
    • html5教程调用绘图api画简单的圆形代码分享
    • html5教程画矩形代码分享
    • html5教程制作简单画板代码分享
    • html5基础教程常用技巧整理
    • html5教程-Canvas入门
    • html5教程画矩形代码分享
    • HTML5晃动DeviceMotionEvent事件
    • HTML5教程之html 5 本地数据库(Web Sql Database)
    • HTML5中对contenteditable属性的解释与规定

    相关文章

    • 2018-12-03总结10篇基本绘图用法实例教程
    • 2018-12-03浅谈图形扭曲的实例教程
    • 2018-12-03不用编写代码就能制作生成HTML5页面的工具有哪些
    • 2018-12-03关于html5如何在canvas中插入图片的示例详解
    • 2017-08-06HTML5 canvas基本绘图之填充样式实现
    • 2018-12-03基于mo.js制作的17种炫酷图标动画特效
    • 2018-12-03jQuery自定义函数应用以及解析
    • 2018-12-03HTML5 Web Workers之网站也能多线程的实现_html5教程技巧
    • 2018-12-03只要五步 就可以用HTML5/CSS3快速制作便签贴特效(图)_html5教程技巧
    • 2018-12-03移动端h5轮播插件swipe实例详解

    文章分类

    • html/xhtml
    • html5
    • CSS
    • XML/XSLT
    • Dreamweaver教程
    • Frontpage教程
    • 心得技巧
    • bootstrap
    • vue
    • AngularJS
    • HBuilder教程
    • css3
    • 浏览器兼容
    • div/css
    • 网页编辑器
    • axure

    最近更新的内容

      • 用于web应用数据管理和应用程序通讯的jQuery组件库
      • 值得一个的5个强大的HTML5API 函数
      • HTML5的contenteditable属性解析
      • 如何用v-for给src属性赋值
      • html5实现表单的复选框验证
      • HTML5 history新特性pushState、replaceState及两者的区别 _html5教程技巧
      • 如何使用HTML5 Canvas绘制动态线性渐变
      • HTML 5应用程序缓存使用总结
      • HTML5、Select下拉框右边加图标的实现代码(增进用户体验)
      • 详解html5 canvas常用api总结(二)--绘图API

    关于我们 - 联系我们 - 免责声明 - 网站地图

    ©2020-2025 All Rights Reserved. linkedu.com 版权所有