![](https://img-blog.csdnimg.cn/20190521110735606.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
JavaScript权威指南(第6版) --- 自学笔记
JavaScript权威指南(第6版) --- 自学笔记
边涯浪子
每天多学一点点
展开
-
JavaScript权威指南(第6版) --- 自学笔记(21) --- 函数定义表达式、调用表达式
函数定义表达式定义一个js函数,表达式的值就是这个新定义的函数,从某种意义来讲,函数定义表达式可称为"函数直接量"。一个典型的函数定义表达式包含关键字function,跟随其后的是一对圆括号,括号内是一个以逗号分隔的列表,列表含有0个或者多个标识符(参数名),然后再跟随一个有花括号包裹的js代码段(函数体)。var square = function(x) { return x...原创 2019-05-22 14:37:51 · 137 阅读 · 0 评论 -
JavaScript权威指南(第6版) --- 自学笔记(20) --- 对象和数组的初始化表达式、属性访问表达式
对象和数组初始化表达式实际上是一个新创建的对象和数组。有时也称对象直接量和数组直接量,但它们不是原始表达式,因为它们所包含的成员或者元素都是子表达式。数组初始化表达式是通过一对方括号和其内部由逗号隔开的列表构成,初始化的结果是一个新创建的数组,数组的元素是逗号分隔的表达式的值。并且,数组初始化表达式中的元素初始化表达式也可以是数组的初始化表达式,也就是说,这些表达式是可以嵌套的。[]...原创 2019-05-21 18:39:49 · 1766 阅读 · 3 评论 -
JavaScript权威指南(第6版) --- 自学笔记(19) --- 原始表达式
表达式js中的一个短语,js解释器会将其计算出一个结果。程序中的常量是最简单的一类表达式。变量名也是一种简单的表达式,它的值就是赋值给变量的值。复杂表达式是由简单表达式组成,比如:数组访问表达式是由一个表示数组的表达式,左方括号,一个整数表达式和右方括号构成,他们所组成的新的表达式的运算结果是该数组的特定位置的元素的值。同样的,函数调用表达式由一个表示函数对象的表达式和0个或多个参数表达式...原创 2019-05-21 17:37:18 · 403 阅读 · 0 评论 -
JavaScript权威指南(第6版) --- 自学笔记(18) --- 作为属性的变量、作用域链
作为属性的变量当声明一个js全局变量时,实际上是定义了全局对象的一个属性。当使用var声明一个变量时,创建的这个属性时不可配置的(后面会解释),也就是说这个变量无法通过delete运算符删除。如果没有使用严格模式,并给一个未声明的变量赋值的话,js会自动创建一个全局变量,以这种方式创建的变量时全局变量的正常可配置属性,并可以删除他们。var globalWithVar = "123";...原创 2019-05-21 16:57:31 · 138 阅读 · 0 评论 -
JavaScript权威指南(第6版) --- 自学笔记(17) --- 函数作用域和声明提前
函数作用域和声明提前在一些编程语言中,花括号内的每一段代码都具有各自的作用域,而且变量在声明他们的代码之外是不可见得,我们称之为块级作用域(block scope)。但js中没有块级作用域,取而代之的使用了函数作用域(function scope):变量在声明他们的函数体以及这个函数体嵌套的任意函数体内都是有定义的。function test() { var i = 0; // ...原创 2019-05-21 12:54:44 · 137 阅读 · 0 评论 -
JavaScript权威指南(第6版) --- 自学笔记(16) --- 变量作用域
变量的作用域(scope)是程序源代码中定义这个变量的区域。全局变量拥有全局作用域,在js代码的任何地方都是有定义的;而在函数内声明的变量只在函数体内有定义,它是局部变量,作用域是局部性的;函数的参数也是局部变量,他们只在函数体内有定义。在函数体内,局部变量的优先级高于同名的全局变量,如果在函数内声明的一个局部变量或者函数参数中带有的变量与全局变量同名时,那么全局变量就会被局部变量所遮盖...原创 2019-05-21 10:01:35 · 147 阅读 · 0 评论 -
JavaScript权威指南(第6版) --- 自学笔记(15) --- 变量声明
变量声明在js程序中,使用一个变量之前应当先声明。使用关键字var来声明。(ES6新增了let命令,用来声明局部变量,有兴趣的可以自己百度一下,后续也会单独说明var与let区别。此处只按照书本说明var。)// 可以一个关键字声明一个,如果声明语句没有给变量指定初始值,它的初始值是undefined。var i;var sum;// 也可以一个关键字声明多个var a, b;...原创 2019-05-21 09:19:49 · 177 阅读 · 0 评论 -
JavaScript权威指南(第6版) --- 自学笔记(14) --- 对象转换为原始值
(1)对象转布尔值很简单,所有对象(包括数组和函数)都会转换为true。包括包装对象。var a = {};var b = [];var c = new Boolean(false); // 包装对象,它已经不是一个原始值,而是一个对象。var d = function() {}console.log(Boolean(a)); // trueconsole.log(Boolean(...原创 2019-05-20 18:38:36 · 167 阅读 · 1 评论 -
JavaScript权威指南(第6版) --- 自学笔记(13) --- 显示类型转换
显示类型转换(1)最简单的可以使用Boolean()、Number()、String()或者Object()函数进行转换;当不通过new运算符调用这些函数时,他们做作为类型转换函数来处理类型转换。console.log(Number("3")); // 3console.log(typeof(Number("3"))); // numberconsole.log(String(fals...原创 2019-05-20 16:38:34 · 129 阅读 · 0 评论 -
JavaScript权威指南(第6版) --- 自学笔记(12) --- 类型转换
类型转换看下面示例:console.log(10 + "string"); // 10string; +运算符可以用在数字和字符串。数字10被转换为字符串console.log("7" * "4"); // 28; *是数值计算,两个字符串都被转换成数字。console.log(1 - "x"); // NaN; -是数值计算,x转成数值时,转成了NaN,整个表达式结果就是NaN。v...原创 2019-05-20 11:30:18 · 110 阅读 · 0 评论 -
JavaScript权威指南(第6版) --- 自学笔记(11) --- 不可变原始值和可变的对象引用
js的原始值(undefined、null、布尔值、数字、字符串)和对象(包括数组和函数)有根本区别:原始值是不可更改的,任何方法都无法更改一个原始值,对数字和布尔值很明显,改变数字的值本身说不通;字符串看起来像由组成的数组,我们希望通过指定索引来修改字符串中的字符,但js禁止这样做,字符串中的所有方法,看上去是返回了一个修改后的字符串,实际上返回的是一个新的字符串值。var str =...原创 2019-05-20 10:44:34 · 162 阅读 · 0 评论 -
JavaScript权威指南(第6版) --- 自学笔记(10) --- 全局对象、包装对象
全局对象全局对象的属性是全局定义的符号,js程序可以直接使用,当js解释器启动(或者WEB浏览器加载新页面)时,它将创建一个新的全局对象,并给它一组定义的初始属性:// 全局属性,例如:undefined, Infinity, NaN// 全局函数,例如:isNaN(), parseInt(), eval()// 构造函数,例如:Date(), RegExp(), String(), ...原创 2019-05-17 16:41:54 · 153 阅读 · 0 评论 -
JavaScript权威指南(第6版) --- 自学笔记(9) --- null 和 undefined
nullnull是js语言的关键字,它表示一个特殊值,常用来描述"空值"。console.log(typeof(null)); // object可以理解null是一个特殊的对象值,含义是"非对象"。但实际上,通常认为null是js自有类型的唯一一个成员。它可以表示数字,字符串,对象是"无值"的。undefined用未定义的值表示更深层次的"空值",它是变量的一种取值,表明...原创 2019-05-17 12:36:38 · 191 阅读 · 0 评论 -
JavaScript权威指南(第6版) --- 自学笔记(8) --- 布尔值
布尔值真或假、开或关、是或否、这个类型只有2个值(保留字): true 和 false。(1)js程序中,比较语句的结果通常都是布尔值,如下:var a;console.log(a == 4); // falsea = 4;console.log(a == 4); // true(2) js程序的控制结构中,通常也会用到布尔值,如下:var a = 4;if(a =...原创 2019-05-16 18:37:32 · 168 阅读 · 0 评论 -
JavaScript权威指南(第6版) --- 自学笔记(7) --- 模式匹配、RegExp简单说明
模式匹配回想一下,JavaScript权威指南(第6版)--- 自学笔记(五)中,曾经写过一个字符串的replaceAll方法:String.prototype.replaceAll = function(searchVal, repalceVal) { return this.replace(new RegExp(searchVal, "gm"), repalceVal);}...原创 2019-05-16 18:13:49 · 253 阅读 · 0 评论 -
JavaScript权威指南(第6版) --- 自学笔记(6)--- 文本、字符串直接量
文本字符串是一组由16位值组成的不可变的有序序列,每个字符通常来自于Unicode字符集。js通过字符串表示文本。字符串的长度(length)是其所含16位值得个数,字符串的索引从0开始。js中没有表示单个字符的字符型,要表示单个字符,只需将一个16位值赋值给字符串变量即可,该字符串变量长度为1。字符串直接量由单引号或者双引号括起来的字符串。以下示例都是字符串直接量。""; //...原创 2019-05-16 16:56:30 · 190 阅读 · 0 评论 -
JavaScript权威指南(第6版) --- 自学笔记(5)--- 日期与时间
日期与时间js提供了Date()函数,来创建表示日期和时间的对象。下面是一些日期的处理方式:更多的可以参考:http://www.w3school.com.cn/js/jsref_obj_date.aspvar now = new Date();var date1 = new Date(2019, 4, 14); // 2019/05/14 00:00:00var date2 = ...原创 2019-05-15 16:49:35 · 192 阅读 · 0 评论 -
JavaScript权威指南(第6版) --- 自学笔记(4)--- JS类型,值,变量、数字
JS类型,值,变量js原始类型包括:数字,字符串和布尔值;同时,js定义了2个特殊的原始值:null(空)和undefined(未定义),分别代表了各自特殊类型的唯一成员。数字:js不区分整数值和浮点数值,js中所有数值均用浮点数值表示。js采用IEEE 754标准定义的64位浮点格式来表示数字,最大值为 ±1.7976931348623157 * ,最小值 ±5 *。js整数范围的...原创 2019-05-15 10:43:52 · 199 阅读 · 0 评论 -
JavaScript权威指南(第6版) --- 自学笔记(3)--- JS可选的分号
JS可选的分号js使用分号(;)将语句分隔开,来增加代码的可读性和整洁性。在js中,如果语句独自占一行,通常可以省略(;),但是不建议省略,带有分号的代码可读性要好很多。下面示例用来说明,什么情况下分号必须,什么情况下分号可以省略。1. a = 3; b = 4; // 两条语句各自占一行,此时两条语句后的分号可以省略。2. a = 3; b =4; // 两条语句在一...原创 2019-05-14 18:41:43 · 208 阅读 · 1 评论 -
JavaScript权威指南(第6版) --- 自学笔记(2)--- JS注释、JS直接量、JS标识符与保留字
JS注释:JS提供了2中注释方式:(1)单行注释: 以 "//"开头(2)多行注释:以"/*"开头,以"*/"结尾,之间的文本为注释内容// 单行注释内容/** 多行注释*/注意,多行注释的开始和结束之间不能嵌套注释。JS直接量:// 下面都是JS直接量12 // 数字1.2 // 小数"Hello World" // 字符串'hi' // 字符串t...原创 2019-05-14 14:05:31 · 220 阅读 · 1 评论 -
JavaScript权威指南(第6版) --- 自学笔记(1) --- JS词法结构
JS词法结构字符集:(1)js程序是用Unicode字符集编写的。(2)区分大小写。也就是说,关键字,变量,函数名和所有标识符都必须采取一致的大小写形式。 例如:关键字:"while"必须写为"while",其他写法:"While","WHILE"都无效。 变量名:"deleteFlg", "Deleteflag", "delete...原创 2019-05-14 11:16:44 · 228 阅读 · 1 评论