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;

时间: 2024-10-07 06:29:34

JavaScript读书笔记(3)-操作符、语句和函数的相关文章

Javascript读书笔记:函数定义和函数调用

定义函数 使用function关键字来定义函数,分为两种形式: 声明式函数定义: function add(m,n) { alert(m+n); } 这种方式等同于构造一个Function类的实例的方式: var add = new Function("m", "n", "alert(m+n);"); Function类构造方法的最后一个参数为函数体:"alert(m+n);",前面的都是函数的形参,参数必须是字符串形式的:&

Javascript读书笔记:字符串常用方法

concat() 连接多个字符串,返回合并后的字符串. 1 var s1="a"; 2 var s2="b"; 3 var s3="c"; 4 5 console.log(s1.concat(s2,s3));//abc 数组中的concat():将参数添加为数组的元素,返回新的数组. 1 var arr = [1, 2, 3]; 2 console.log(arr.concat(4, 5));//[1,2,3,4,5] indexOf() 查找子

高性能javascript读书笔记(三.DOM 编程1)

第三章DOM Script DOM编程 读书笔记 访问和修改DOM元素 浏览器通常要求DOM实现和JavaScript保持相互独立. <!-- 例如IE中,被称为JScript的JavaScript实现位于库文件jscript.dll中,而DOM实现位于另一个库mshtml.dll(内 部代号Trident).这种分离技术允许其他技术和语言,如VBScript,受益于Trident所提供的DOM功能和渲染功能.Safari使用Webkit的WebCore处理DOM和渲染,具有一个分离的JavaS

C++ Primer 第四版读书笔记(六)之函数

内联函数.类成员函数和重载函数以及函数指针. 函数可以看作程序员定义的操作.与内置操作符相同的是,每个函数都会实现一系列的计算,然后(大多数时候)生成一个结算结果.但与操作符不同的是,函数有自己的函数名,而且操作数没有数量限制.与操作符一样,函数可以重载,这意味着同样的函数名可以对应对个不同的函数. 一.函数的定义 函数由函数名以及一组操作数类型唯一地表示.函数的操作数,也即形参(parameter),在一对圆括号中声明,形参与形参之间以逗号分隔.函数执行的计算在一个称为函数体(function

数据结构与算法JavaScript 读书笔记

由于自己在对数组操作这块比较薄弱,然后经高人指点,需要好好的攻读一下这本书籍,原本想这个书名就比较高深,这下不好玩了.不过看着看着突然觉得讲的东西都比较基础.不过很多东西,平时还是没有注意到,故写出读书笔记和诸君共勉! 第二张 2.2.1 创建一个数组 创建数组的方式有?那种比较高效?原因是? 第一种模式 var nums = []; var numbers = [1,2,3,4,5];console.log(numbers.length)//5 第二种模式 var nums = new Arr

读书笔记利用T-SQL语句快速清理ZBLOG程序的SQL SERVER2012数据库内容

最近使用了ZBLOG+SQL SERVER搭建了一个博客系统,采用的是ASP程序,因为我数据量很小,使用插件生成HTML文件的话,就没有必要使用PHP了,而且我上次也讲过,PHP的博客程序存在一些问题,很消耗资源,而且数据量也不能做的很大,更重要的是静态化还是不能抵抗流量的冲击. 环境配置:windows server服务器+ZBLOG ASP程序+SQL SERVER2012数据库+域名(读后感http://www.simayi.net读书笔记)+读书主题. 好了,下面还是讲述我最近学习的T-

JavaScript读书笔记(2)--数据类型

1.  严格模式:在javascript中定义了一种不同的解析与执行模型.在严格模式下,一些不确定的行为将得到处理,对某些不安全的操作也会抛出错误. 用法是在脚本中添加:”use strict”; 这是一个编译指示,用于告诉引擎切换到严格模式: 2.  Javascript中的语句,若没有带分号,由解析器确定语句的结尾,但不推荐这么做: Javascript关键字: break,case,catch,continue,debugger*,default,delete,do,else,finall

&lt;深入理解JavaScript&gt;学习笔记(2)_揭秘命名函数表达式

写在前面的话 注:本文是拜读了 深入理解JavaScript 之后深有感悟,故做次笔记方便之后查看. 感觉这章的内容有点深奥....略难懂啊. 先坐下笔记,加深一下印象吧. 我主要记一下自己感觉有用的东西...哈哈 函数表达式和函数声明 在ECMAScript中,创建函数的最常用的两个方法是函数表达式和函数声明,两者期间的区别是有点晕,因为ECMA规范只明确了一点:函数声明必须带有标示符(Identifier)(就是大家常说的函数名称),而函数表达式则可以省略这个标示符: 函数声明: funct

JavaScript读书笔记(4)-变量、作用域和内存问题

1.ECMAScript数据类型分为:基本类型值和引用类型值: ECMAScript中所有函数的参数都是按值传递的: 检查对象的类型:varible instanceof constructor Alert(person instanceof Object); 2.  执行环境和变量 每个执行环境都有一个与之关联的变量对象,环境中定义的所有变量和函数都保存在这个对象中: 全局执行环境是最外围的一个指定环境,在web浏览器中,全局执行环境是window对象,所有的全局变量和函数都是window对象