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”; 这 ...
随机推荐
- sklearn python API
sklearn python API LinearRegression from sklearn.linear_model import LinearRegression # 线性回归 # modul ...
- [luoguP2774] 方格取数问题(最大点权独立集)
传送门 引入两个概念: 最小点权覆盖集:满足每一条边的两个端点至少选一个的最小权点集. 最大点权独立集:满足每一条边的两个端点最多选一个的最大权点集. 现在对网格染色,使得相邻两点颜色不同,之后把两个 ...
- BZOJ3990 [SDOI2015]排序 【搜索】
题目 小A有一个1-2^N的排列A[1..2^N],他希望将A数组从小到大排序,小A可以执行的操作有N种,每种操作最多可以执行一次,对于所有的i(1<=i<=N),第i中操作为将序列从左到 ...
- BZOJ4259 残缺的字符串 【fft】
题目 很久很久以前,在你刚刚学习字符串匹配的时候,有两个仅包含小写字母的字符串A和B,其中A串长度为m,B串长度为n.可当你现在再次碰到这两个串时,这两个串已经老化了,每个串都有不同程度的残缺. 你想 ...
- centons7编译安装zabbix3.4【转https://www.cnblogs.com/kowloon/p/7771495.html】
或者参考官方文档:https://www.zabbix.com/documentation/3.4/manual/installation/install 一.预编译环境准备 1.lamp安装和启动 ...
- 转 整理 Linux服务器部署系列之一—Apache篇2
http://www.jb51.net/article/46148.htm 如何查看Apache的连接数和当前连接数 查看了连接数和当前的连接数 netstat -ant | grep $ip:80 ...
- Python学习笔记2_一些小程序
counts = [98,12,3,4,1,4,9,3821] minNum = min(counts) #print minNum minNum_index = counts.index(minNu ...
- error错误信息状态码含义
XMLHttpRequest.status: 200:成功. 401:拒绝访问. 403:禁止访问. 404:找不到. 405:方法不被允许. 407:要求进行代理身份验证. 500:内部服务器错误. ...
- MySql_ procedure
返回参数示例 下面是一个示例: delimiter //S drop procedure if EXISTS myzrz; CREATE PROCEDURE myzrz(in pin int,out ...
- 中途相遇法 解决 超大背包问题 pack
Description [题目描述] 蛤布斯有n个物品和一个大小为m的背包,每个物品有大小和价值,它希望你帮它求出背包里最多能放下多少价值的物品. [输入数据] 第一行两个整数n,m.接下来n行每行两 ...