JavaScript读书笔记(3)-操作符、语句和函数
1、 操作符
(1) 一元操作符
前置递增和递减操作符,变量的值都是在语句被求值以前改变的;后置相反
(2) 位操作符
在ECMAScript中,对数值进行位操作时,会发生以下转换过程:64位的数值被转换为32位数值,然后执行位操作,最后再将32位的结果转换回64位数值;
右移分为有符号右移(>>)和无符号右移(>>>)
(3) 布尔操作符-(!)(&&)(||)
(4) 全等操作符(===)只在两个操作数未经转换就相等的情况下返回true;
2、 语句
(1) for-in语句是精准的迭代语句,用来枚举对象的属性;若对象为null或undefined,不执行循环体,使用之前,先检测该对象的值不是null或undefined;
(2) lable语句-在代码中添加标签,以便将来使用,加标签的语句一般都要与for语句等循环语句配合使用;即与break和continue语句配合使用,指向代码中特定的位置;
(3) with语句,将代码的作用域设置到一个特性的对象中,主要是为了简化多次编写同一个对象的工作;不建议使用;
3、 函数
(1) ECMAScript中的函数在定义时不必指定是否返回值;但可以用return返回值,return之后的代码永远不会执行;
Return语句不带任何返回值时,函数在停止执行后返回undefined;
(2) 严格模式对函数的限制:
不能把函数名和参数名命名为eval或arguments;不能出现两个命名参数同名的情况;
(3) 参数
ECMAScript函数不介意传递进来少个参数,也在乎传递进来参数是什么数据类型,ECMAScript中的参数在内部是用一个数组来表示的;在函数体内可以通过arguments对象来访问参数数组;
对于ECMAScript函数来说-命名参数只提供便利,但不是必须的;
Arguments的值永远与对应命名参数的值保持同步,Arguments对象中的值会自动反映到对应的命名参数;但修改命名参数不会改变arguments中对应的值;因为他们的内存空间是独立的;
如果只传入了一个参数,那么为arguments[1]设置的值,是不会反映到命名参数中,arguments对象的长度由传入的参数个数决定,不是由定义函数时的命名参数的个数决定的;
没有传递值的命名参数将自动被赋予undefined值;
严格模式对arguments的限制:Arguments的值与对应命名参数的值不保持同步;重写arguments的值会导致语法错误;
ECMAScript中所有参数传递的都是值,不可能通过引用传递参数;
(4)重载
ECMAScript函数没有重载,若定义两个名字相同的函数,则该名字只属于后定义的函数;
总结:对于函数,终于明白了以前看不明白的很多地方,原来都是有规定的;这几天一直都是理论,并且都是书中的原话,其实更多的是去实践,去理解,努力ing;
JavaScript读书笔记(3)-操作符、语句和函数的更多相关文章
- JavaScript学习笔记-表达式和语句
表达式和语句 eval( ) 只有一个参数 参数非字符串时,直接返回这个参数: 参数为字符串时,它把字符串当成JavaScript代码进行编译,编译失败则抛出语法错误,编译成功则执行代码,并返回最后一 ...
- 数据结构与算法JavaScript 读书笔记
由于自己在对数组操作这块比较薄弱,然后经高人指点,需要好好的攻读一下这本书籍,原本想这个书名就比较高深,这下不好玩了.不过看着看着突然觉得讲的东西都比较基础.不过很多东西,平时还是没有注意到,故写出读 ...
- MDX Step by Step 读书笔记(七) - Performing Aggregation 聚合函数之 Max, Min, Count , DistinctCount 以及其它 TopCount, Generate
MDX 中最大值和最小值 MDX 中最大值和最小值函数的语法和之前看到的 Sum 以及 Aggregate 等聚合函数基本上是一样的: Max( {Set} [, Expression]) Min( ...
- 《C++ Primer Plus》读书笔记之四—分支语句和逻辑操作符
第六章 分支语句和逻辑操作符 1.&&的优先级低于关系操作符. 2.取值范围:取值范围的每一部分都使用AND操作符将两个完整的关系表达式组合起来: if(age>17&& ...
- JavaScript读书笔记(1)
从今天开启每天看书记笔记模式,<JavaScript高级程序设计(第3版)> 1. Javascript最初是为了解决输入验证器的问题,现在已经发展成一门复杂的语言: 2. 语言标准为E ...
- 高性能JavaScript读书笔记
零.组织结构 根据引言,作者将全书划分为四个部分: 一.页面加载js的最佳方式(开发前准备) 二.改善js代码的编程技巧(开发中) 三.构建与部署(发布) 四.发布后性能检测与问题追踪(线上问题优化) ...
- 你不知道的javascript读书笔记3
概述 这是我看<你不知道的JavaScript(中卷)>中关于类型检查的笔记,供以后开发时参考,相信对其他人也有用. typeof 我们知道js中有七种内置类型:undefined, nu ...
- <深入理解JavaScript>学习笔记(2)_揭秘命名函数表达式
写在前面的话 注:本文是拜读了 深入理解JavaScript 之后深有感悟,故做次笔记方便之后查看. 感觉这章的内容有点深奥....略难懂啊. 先坐下笔记,加深一下印象吧. 我主要记一下自己感觉有用的 ...
- JavaScript读书笔记(2)--数据类型
1. 严格模式:在javascript中定义了一种不同的解析与执行模型.在严格模式下,一些不确定的行为将得到处理,对某些不安全的操作也会抛出错误. 用法是在脚本中添加:”use strict”; 这 ...
随机推荐
- es6总结(八)--模块化-import
- 标准C程序设计七---43
Linux应用 编程深入 语言编程 标准C程序设计七---经典C11程序设计 以下内容为阅读: <标准C程序设计>(第7版) 作者 ...
- 计算机图形——OpenGL
荒废了太久,趁着"寒假"死磕了两周,验证了不少想法,解开了不少疑惑,代码质量当然是没有的,一切只为看到结果. 有空了再写每一项的细节. 源码地址 2019/5/12 更新 延迟渲染 ...
- Ui大屏
http://www.uimaker.com/plus/view.php?aid=128661&pageno=1
- NYOJ90 整数划分(经典递归和dp)
整数划分 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 将正整数n表示成一系列正整数之和:n=n1+n2+…+nk, 其中n1≥n2≥…≥nk≥1,k≥1. 正 ...
- nfs详解及实现全网备份
1.统一hosts cat /etc/hosts 172.16.1.5 lb01 172.16.1.6 lb02 172.16.1.7 web02 172.16.1.8 web01 172.16.1. ...
- [Violet 4] 毕业旅行
2718: [Violet 4]毕业旅行 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 672 Solved: 389[Submit][Status ...
- Java 浅析,生成OFD文件
摘要:这几天遇到个需要,需要提供用户下载电子证照,最简单的方法实现:word做了一份模板,利用网页工具转成OFD文件,http://www.yozodcs.com/page/example.html用 ...
- Hystrix的介绍和简单使用
这周在看项目的相关代码时,接触到了Hystrix,因此查询了相关资料学习了下. 一.什么是Hystrix Hystrix是Netflix针对微服务分布式系统的熔断保护中间件,当我们的客户端连接远程的微 ...
- SQL-基础学习2--ORDER BY ,DESC,WHERE, BETWEEN,AND ,OR ,IN ,NOT
所使用的数据库资料在:数据库资料 第三课:排序检索数据 3.1 排序数据 按单列排序 如果不排序,数据一般将以它在底层表中出现的顺序显示,这有可能是数据最初添加到表中的顺序.但是,如果数据随后进行 ...