资讯专栏INFORMATION COLUMN

javaScript的精华与糟粕

mayaohua / 1239人阅读

摘要:最近在看语言精粹这本书,建立完整的知识体系。一关于语言是一门未在实验室打磨过的语言,存在这很多考虑不全面甚至,因此我们很有必要学习本书,已达到去除糟粕,取其精华的效果。则为定义了,为初始化的变量。为对象,数组函数均属于特殊的对象。

最近在看JavaScript语言精粹这本书,建立完整的js知识体系。

一.关于JavaScript语言
js是一门未在实验室打磨过的语言,存在这很多考虑不全面、甚至bug,因此我们很有必要学习本书,已达到去除糟粕,取其精华的效果。

当前JavaScript已成为浏览器通用语言,其重要性不言而喻,需要提的一点是,其DOM和BOM编写的十分糟糕,老道称写一本关于BOM或者DOM精华的书是一项不可能完成的任务.

优点:①函数 ②弱类型 ③对象字面量 ④动态对象
缺点:全局变量的编程模式

JavaScript为单线程语言,自上至下依次执行,遇到函数调用、break语句、return语句可改变程序的执行顺序。

二.语法
数据类型:number、Boolean、string、null、undefined、object。
其中number类型不区分整型和浮点型(即1和1.0全等)
Boolean包括true和false(小写,大写或其他写法则不是Boolean类型)
string:用单引号或双引号包裹的0个或者多个字符(其中字符串一旦创建,永远无法改变,string的一些方法只是生成了新字符串或者复制操作,不会改变原字符串)
null一般用来声名空对象,typeof null值为object。
undefined则为定义了,为初始化的变量。
object为对象,数组、函数均属于特殊的对象。

语句:条件语句,循环语句、break语句(用于循环语句、switch语句中)、return语句(用于函数中,终止函数运行)
循环语句:for语句、while语句、do-while语句(其中for有两种形式,for-in语句用于对象的枚举,使用时要判断属性是否存在 hasOwnProperty检测)

三、字符串(用单引号或双引号包裹的0个或者多个字符)
其中字符串一旦创建,永远无法改变

1、URL中提取key值:(用了字符串中的slice、split方法和数组中的filter、indexOf方法)

function getURLkey(name){
    return decodeURIComponent(window.location.search.slice(1).split("&&").filter((item)=>{return item.indexOf(name)!==-1})[0].split("=")[1])
}

四.对象(用大括号包裹的0个或多个键值对,其中key可为任意字符串,value值为除undefined外的任意值)
对象为按引用传递,创建后不可被复制。

五.数组(用方括号包裹的0个或多个用逗号隔开的表达式)
js的数组不是严格意义上的数组,因此效率略低,但其有自己的特点,使用方便,含有很多内置方法,有length属性了, 没有数组越界情况,可自动扩容.

数组中的值可以是不同类型的

六.函数 (被老道成为js中最出色的设计,接近完美)
可以被调用的对象,有自己的作用域.

函数的调用:函数的调用,即传递程序的运行的环境和参数给被调用函数.
根据this取值和绑定时机不同,可分为四种调用方式:
①方法调用.对象才有方法,函数为对象中的属性值, O.test()(方法后跟随一对小括号-调用符号),此时,this为调用的对象O,运行时绑定.
②函数调用.this为全局对象.(老道称此为js设计时的错误,即在对象内部调用函数时,函数的this指向全局变量,而非当前对象的内部作用域,解决方法that=this)
③构造器调用(不常用,且晦涩).
使用new创建函数,然后调用.
④apply调用.
apply方法可传入两个参数,第一个参数是需要绑定的this值,第二个是需要传入的参数(数组形式),call为连续出入参数.

递归方法.效率高,速度快,特别是操作DOM文档.

七.正则表达式。(高效操作字符串的方法,比string的自带的方法速度快)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/101283.html

相关文章

  • 如何循序渐进地学习Javascript

    摘要:如果在初学一门语言的时候第一想到的是问别人,是很难取得进步的。如果你真想学好,我有个大概的自学轨迹供你们参考。第一步,学习的编程。立即可以尝试的实例,也可以让的初学者马上看到效果。读懂别人的代码是学习,而改进别人的代码则是创造了。 javascript入门太容易了,导致几乎人人随便看看就能上手,零基础的人学个三五天都能对外宣称自己掌握了js。可是真正掌握js是一件很难的事情。如果在初学...

    DTeam 评论0 收藏0
  • 零基础前端开发初学者应如何系统地学习?

    摘要:在有了基础之后,进一步学习内容包括框架。前端学习交流群禁止闲聊,非喜勿进。代码提交前必须做的三个事情检查所有变更跑一边单元测试手动运行一遍所有 网站开发开发大致分为前端和后端,前端主要负责实现视觉和交互效果,以及与服务器通信,完成业务逻辑。其核心价值在于对用户体验的追求。可以按如下思路学习系统学习: 基础知识: html + css 这部分建议在 w3school 在线教程上学习,边...

    JouyPub 评论0 收藏0
  • 零基础前端开发初学者应如何系统地学习?

    摘要:在有了基础之后,进一步学习内容包括框架。前端学习交流群禁止闲聊,非喜勿进。代码提交前必须做的三个事情检查所有变更跑一边单元测试手动运行一遍所有 网站开发开发大致分为前端和后端,前端主要负责实现视觉和交互效果,以及与服务器通信,完成业务逻辑。其核心价值在于对用户体验的追求。可以按如下思路学习系统学习: 基础知识: html + css 这部分建议在 w3school 在线教程上学习,边...

    funnyZhang 评论0 收藏0
  • 双十二大前端工程师读书清单

    摘要:本文最早为双十一而作,原标题双大前端工程师读书清单,以付费的形式发布在上。发布完本次预告后,捕捉到了一个友善的吐槽读书清单也要收费。这本书便从的异步编程讲起,帮助我们设计快速响应的网络应用,而非简单的页面。 本文最早为双十一而作,原标题双 11 大前端工程师读书清单,以付费的形式发布在 GitChat 上。发布之后在读者圈群聊中和读者进行了深入的交流,现免费分享到这里,不足之处欢迎指教...

    happen 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<