《Javascript秘密花园》学习笔记(下)
《Javascript秘密花园》在线阅读地址
JS核心
在任何情况下我们都应该避免使用 eval 函数。99.9% 使用 eval 的场景都有不使用 eval 的解决方案。
JavaScript 有两个表示‘空’的值,分别是null与undefined,其中比较有用的是 undefined。undefined 是一个值为 undefined 的类型。
下面的情况会返回 undefined 值:
- 访问未修改的全局变量 undefined。
- 由于没有定义 return 表达式的函数隐式返回。
- return 表达式没有显式的返回任何内容。
- 访问不存在的属性。
- 函数参数没有被显式的传递值。
- 任何被设置为 undefined 值的变量。
null和其他语言的null不同,JS中的undefined才相当于其他语言的null。
null在 JavaScript 内部有一些使用场景(比如声明原型链的终结 Foo.prototype = null),但是大多数情况下都可以使用 undefined 来代替。
JavaScript 不是一个没有分号的语言,恰恰相反上它需要分号来就解析源代码。 因此 JavaScript 解析器在遇到由于缺少分号导致的解析错误时,会自动在源代码中插入分号。
由于JS的自动插入分号机制,建议绝对不要省略分号,同时也提倡将花括号和相应的表达式放在一行, 对于只有一行代码的 if 或者 else 表达式,也不应该省略花括号。
其他
使用 setTimeout 和 setInterval 来计划执行函数。setTimeout 只会执行回调函数一次,不过 setInterval - 正如名字建议的 - 会每隔 X 毫秒执行函数一次。
注意: setTimeout 的第一个参数是函数对象,一个常犯的错误是这样的 setTimeout(foo(), 1000), 这里回调函数是 foo 的返回值,而不是foo本身。 大部分情况下,这是一个潜在的错误,因为如果函数返回 undefined,setTimeout 也不会报错。
手工清空定时器
可以通过将定时时产生的 ID 标识传递给 clearTimeout 或者 clearInterval 函数来清除定时, 至于使用哪个函数取决于调用的时候使用的是 setTimeout 还是 setInterval。
var id = setTimeout(foo, 1000);
clearTimeout(id);
setTimeout 和 setInterval 也接受第一个参数为字符串的情况。 这个特性绝对不要使用,因为它在内部使用了 eval。
注释
setTimeout() 方法
定义和用法
setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式。
语法
setTimeout(code,millisec)
参数 | 描述 |
---|---|
code | 必需。要调用的函数后要执行的 JavaScript 代码串。 |
millisec | 必需。在执行代码前需等待的毫秒数。 |
提示:setTimeout() 只执行 code 一次。如果要多次调用,请使用 setInterval() 或者让 code 自身再次调用 setTimeout()。
绝对不要使用字符串作为 setTimeout 或者 setInterval 的第一个参数, 这么写的代码明显质量很差。当需要向回调函数传递参数时,可以创建一个匿名函数,在函数内执行真实的回调函数。
另外,应该避免使用 setInterval,因为它的定时执行不会被 JavaScript 阻塞。
转载于:https://www.cnblogs.com/xihe/p/6138626.html
《Javascript秘密花园》学习笔记(下)相关推荐
- JavaScript闭包学习笔记
闭包(closure)是JavaScript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现. 下面就是我的学习笔记,对于JavaScript初学者应该是很有用的. 一.变量的作用域 要理解 ...
- Javascript入门学习笔记
JS入门学习笔记目录 1.JS简介 2.组成部分 3.特点 4.作用 5.JS三种添加方式 6.变量 7.数据类型 8.检测数据类型 9.逗号运算符 10.算术运算符 11.关系运算符 12.逻辑运算 ...
- Java Web--HTML、CSS、JavaScript详细学习笔记(内含丰富示例代码)
** Java Web–HTML.CSS.JavaScript学习笔记 ** HTML(Hyper Text Markup Language超文本标记语言):控制的是页面的内容,是由标签组成的语言,能 ...
- Python课程学习笔记 下
笔记目录 Python 学习笔记 上 面向对象和异常 面向对象 基本理论 定义类 根据类实例化对象 属性相关 方法相关 类的补充 属性补充 方法相关补充 描述器 python对象的生命周期 内存管理机 ...
- javascript面向对象学习笔记(一)——继承
最近在学习html5,玩了下canvas,发现js中很多的东西都不太记得了.翻了下笔记后发现还是去图书馆逛逛把,到借阅区找了我一直想看的<javascript design patterns&g ...
- JavaScript Reflect 学习笔记
今天我们来学习JavaScript中的反射和ES6的Reflect对象. 什么是反射? 反射机制是指在程序运行期间能够获取自身的信息,比如一个对象能够在运行时就知道自己有哪些属性和方法. 在ES6之前 ...
- javascript深入浅出——学习笔记(六种数据类型和隐式转换)
在慕课之前学过JS深入浅出,最近发现很多东西都记不太清楚了,再复习一遍好了,感觉这个课程真的超级棒的,做做笔记,再添加一些学习内容?随时补充 课程大纲 1.数据类型 2.表达式和运算符 3.语句 4. ...
- 前端JavaScript的学习笔记
前端知识体系 想要成为真正的"互联网Java全栈工程师"还有很长的一段路要走,其中前端是绕不开的一门必修课.本阶段课程的主要目的就是带领Java后台程序员认识前端.了解前端.掌握前 ...
- JavaScript DOM 学习笔记(四)
2019独角兽企业重金招聘Python工程师标准>>> 案例:将整个图片库的浏览连接几种安排在图片库主页里,在用户点击某个图片链接时才把相应的图片传送出来. 图片素材: 将图片素材 ...
- JavaScript红皮书学习笔记
1.什么是javaScript JavaScript 历史回顾 JavaScript 是什么(实现) JavaScript 是一门用来与网页交互的脚本语言,包含以下三个组成部分. ECMASc ...
最新文章
- CSS实现元素居中原理解析
- [Pyhon疫情大数据分析] 三.新闻信息抓取及词云可视化、文本聚类和LDA主题模型文本挖掘
- 如何在ASP.NET 5和XUnit.NET中进行LocalDB集成测试
- 非你莫属 java全球排名_TIOBE:2018年5月全球编程语言排行榜
- 大数据之_数据采集Flume_Flume了解_学习内容介绍---Flume工作笔记002
- matlab简单分析其他类型滤波器(陷波尖峰梳状半带希尔伯特)
- DataSet数据导入到Excel
- web.xml文件中的web-app元素 部署
- asp教程一:创建 Active Server Page 页
- 数据助力防疫,疫情密切接触人员追踪算法赛期待你的加入
- linux计划任务失败如何排查原因
- AWS宣布计划在加拿大开设第二个区域
- Unity3D--学习太空射击游戏制作(四)
- 计算机电子表格课程导入,又到了每年此刻,教你把课程表导入日历
- UE4 LOD Screen Size
- 2023全网首发抖音标签检测程序源码+花800买的/最新版本
- PS-怎么用ps查看精灵图(雪碧图)的位置?
- 【Java中实现微信公众号模板消息推送】
- freeswitch hangup hook lua脚本处理
- 中华英才网裁员,五成员工可拿(N+3)*月薪的离职补偿