ITPUB论坛-中国最专业的IT技术社区

 找回密码
 注册
查看: 566|回复: 2

JavaScript一些常识,未知的变量名将会创建一个全局变量

[复制链接]
认证徽章
论坛徽章:
0
发表于 2017-12-1 15:08 | 显示全部楼层 |阅读模式

[color=rgb(102, 102, 102) !important]6.  未知的变量名将会创建一个全局变量

[color=rgb(102, 102, 102) !important]JS的语法很随意,在变量声明方面并没有严格规定,但是我们至少要遵循一种大家约定成熟的一套准则

[color=rgb(102, 102, 102) !important]1)变量必须var声明

[color=rgb(102, 102, 102) !important]2)尽量减少对全局变量的污染,慎重选择使用全局变量

[color=rgb(102, 102, 102) !important]7.  JavaScript是一种弱类型语言

[color=rgb(102, 102, 102) !important]暂时我只知道C和JS是弱类型语言,因为它们有共同点:容忍隐式类型转换。JS只有一种类型var ,为变量赋值时会自动判断类型并进行转换。

[color=rgb(102, 102, 102) !important]8.  原型对象prototype

[color=rgb(102, 102, 102) !important]prototype原型对象,我们在编码的时候经常可能会用到,或者经常在学习一些插件源码的过程中会看见它的用法。上述例子中

[color=rgb(102, 102, 102) !important]

[color=rgb(102, 102, 102) !important]这就是prototype原型对象常见的一种用法,在String原型上添加了trim()方法Ctrlbox社区 groups.ctrlbox.cn

[color=rgb(102, 102, 102) !important] 返回值为:zzzz

[color=rgb(102, 102, 102) !important]这里要作说明,String并不是test的数据类型,String同样是一个对象,一个字符串类型原型对象。

[color=rgb(102, 102, 102) !important]输出:

[color=rgb(102, 102, 102) !important]当我们在函数prototype上绑定属性的时候,那么属性和值就绑定到了prototype对象上,并没有正真的绑定到那个对象上去。当需要访问那个对象上的这个属性的时候,JS解析器,首先会去从对象本身上去找这个属性,然后再到原型对象上找。

[color=rgb(102, 102, 102) !important]JS相对于那些所谓重量级语言(C++、C#、Java等),在某些操作上显得方法笨拙,但是当你真正地去理解并研究它更深的领域,其实发现JS是一种相对原生的编程语言。在它的世界里面,我们可以发挥自己的思维结合自己的思想,创造一些意想不到的结果


论坛徽章:
0
发表于 2017-12-4 19:36 | 显示全部楼层
谢谢分享

使用道具 举报

回复
论坛徽章:
0
发表于 2017-12-16 09:01 | 显示全部楼层
楼主的提醒很有价值,但是文章有个小疏漏。
prototype绑定属性的例子,最后一行需要改正下:
console.log('zzzz');
console.log(person.name);

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

TOP技术积分榜 社区积分榜 徽章 电子杂志 团队 统计 虎吧 老博客 知识索引树 读书频道 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档 | IT博客
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛 | SAP ERP系统
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 网站律师 隐私政策 知识产权声明
京ICP备16024965号 北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表