Javascript高级程序设计(书中总结)

注:本文属于个人总结,知识点说的不全、不对的地方,还望见谅。(我会在日后修改,补正)

本书:js的简介以及在html中的使用就略过。(直奔基础语法,期间还有滤过部分)

第三章:基本概念:

1.js中的一切(变量、函数名和操作符)都区分大小写;

2.标识符,就是指变量、函数、属性的名字,或者函数的参数。标识符可以是按照下列格式规则 组合起来的一或多个字符:

(1) 第一个字符必须是一个字母、下划线(_)或一个美元符号($);

(2)其他字符可以是字母、下划线、美元符号或数字。

3.语句:

var sum = a + b      // 即使没有分号也是有效的语句——不推荐

var diff = a - b;       // 有效的语句——推荐

4.变量:js 的变量是松散类型的,可以用来保存任何类型的数据。定义变量时要使用 var 操作符(注意 var 是一个关键 字),后跟变量名(即一个标识符)

如:var message;     //这个变量没有初始化,其值为undefined

var message = "h1";  //js支持直接初始化变量

5.数据类型:5种:Number string boolean null undefined   typeof 用来检测类型

6.(一)undefined:在使用var声明变量未对其初始化时,值为undefined  (注:未初始化出现的undefined;变量未声明也会产生undefined)

(二)null 空;如果定义的变量准备用于保存对象,那么变量的值可以设置为null

(三)Boolean的两个字面值:true false; (注:是区分大小写的)对象用于将非逻辑值转换为逻辑值;调用Boolean()函数可以返回一个Boolean的值

其他数据类型转换为boolean值规则:任何非0数字,任何非空字符串,任何对象、不适用  即为true; 反之为false;

(四)number类型:整数()和浮点类型(数值必须包含一个小数点,并且小数点后面必须有至少一位数字;浮点数值本身是整数或者小数点后面没有数值,即转为整数)

(五)NaN即非数值:任何涉及NaN的操作都会返回NaN, isNan() 来确定是否不是数值

(六)数值转换:Number()  parseInt()  parseFloat()  这三个函数可以把非数值转换为数值

值的几种情况: (1)Boolean 返回:true 1  ,  false  2; (2)数值,简单的传入或返回 ; (3)null  返回 0;(4)undefined  返回NaN

(5)字符串:当字符串中只包含数字的时,前导0忽略,转换为十进制数值;当字符串中包含有效的浮点格式的时,前导0忽略,转换为对应的浮点数值;当字符串为空,不包含任何字符时,转换为0;当字符串中包含除上述格式之外的字符,转换为NaN;当字符串中包含有效的十六进制格式时,转换为相同大小的十进制数值;

(6)对象:调用对象的valueof()方法,依照上面的规则转换返回的值,如果转换返回的值为NaN,则调用toString()方法,再次依照前面的规则转换返回的字符串值

(七)String类型:由零或多个 16位 Unicode字符组成的字符序列,即,字符串  (注:字符串可以由双 引号(")或单引号(‘)表示,但以双引号开头的字符串也必须以双引号结尾,以单引号开头的字符串必须以单引号结尾。

(1)字符串字面量:\n 换行

\t 制表

\b 空格

\r 回车

\f 进纸

\\ 斜杠

\‘ 单引号(‘),在用单引号表示的字符串中使用。例如:‘He said, \‘hey.\‘‘

\" 双引号("),在用双引号表示的字符串中使用。例如:"He said, \"hey.\""

\xnn 以十六进制代码nn表示的一个字符(其中n为0~F)。例如,\x41表示"A"

\unnnn 以十六进制代码nnnn表示的一个Unicode字符(其中n为0~F)。例如,\u03a3表示希腊字符Σ

(2)字符串的特点:js中的字符串是不可变的,字符串一旦创建,它们的值就不能改变。要改变某个变量保存的字符串,首先要销毁原来的字符串,然后再用另一个包含新值的字符串填充该变量

(3)把一个值转换为字符串的两种方式:toString()  数值、布尔值、对象和字符串值都拥有这个方法,但undefined、null没有这个方法

String()      在不知道要转换的值是不是 null 或 undefined 的情况下,还可以使用转型函

(八)Object:构造函数、普通函数:

Object() 参数:将会根据参数value的数据类型,返回对应类型的对象;Object()的返回值:返回一个与给定值对应类型的对象。该对象包装了给定的参数。

7.操作符:(1)一元操作符 :只能操作一个值的操作符  (递增或递减)

(2)一元加操作符,一元减操作符

(3)布尔操作符:  && 与  ;|| 或 ; ! 非

(4)乘性操作符:乘法、除法和求模 ;加性操作符:加法和减法

(5)关系操作符 小于(<)、大于(>)、小于等于(<=)和大于等于(>=)

(6)相等操作符:== 相等;  != 不相等; === 全等 ; !== 不全等

(7)赋值操作符: 乘/赋值(*=);

除/赋值(/=);

模/赋值(%=);

加/赋值(+=);

减/赋值(?=);

左移/赋值(<<=);

有符号右移/赋值(>>=);

无符号右移/赋值(>>>=)

8.语句:(1)if语句:用于逻辑判断  (2)for语句;具有在执行循环之前初始化变量和定义循环后要执行的代 码的能力。

9.函数:js中的函数使用 function 关键字来声明,后跟一组参数以及函数体;通过函数可以封装任意多条语句,而且可以在任何地方、 任何时候调用执行。

10.理解参数:js的函数不介意传递进来多少个参数,也不在乎传进来参数是什么数据类型。即便你定义的函数只接收两个参数, 在调用这个函数时也未必一定要传递两个参数。可以传递一个、三个甚至不传递参数;js中的参数在内部是用一个数组来表示的;在函数体内可以通过 arguments 对象来访问这个参数数组,从而获取传递给函数的每一个参数。 arguments 对象只是与数组类似(它并不是 Array 的实例),可以通过方括号访问它的每一个元素;通过访问 arguments 对象的 length 属性可以获知有多少个参数传递给了函数。

第四章:执行环境及作用域内存问题 (能力有限,执行环境及作用域部分略过,在日后能更加理解,再做补充。)

1.js 的变量为松散类型的,它只是在特定时间用于保存特定值的一个名字而已;不用在定义某个变量时必须要保存何种数据类型的值,变量的值及其数据类型可以在脚本的生命周期内改变。

2.基本类型和引用类型的值:基本类型值指的是简单的数据段,而引用类型值指那些可能由多个值构成的对象。

(1)基本数据类型:Undefined、Null、Boolean、Number 和 String

(2)引用类型的值:(object) 是保存在内存中的对象(js不允许直接访问内存中的位置, 也就是不能直接操作对象的内存空间;在操作对象时,实际上是在操作对象的引用而不是实际的对象。 为此,引用类型的值是按引用访问的)

(3)动态的属性 :基本类型,创建的动态的属性,互不影响;引用类型,创建的动态属性修改,互相影响

(4)存变量:基本类型,存变量,各是各的,不影响;引用类型的指向是一个,修改会影响

(5)传递参数:按基本类型传递无论是值还是对象,都不会改变;按引用类型传递,其值会被改变

(6)typeof:检测一个变量是不是基本数据类型;instanceof 判断是不是引用类型。

时间: 2024-08-03 08:50:18

Javascript高级程序设计(书中总结)的相关文章

创建对象(《JavaScript高级程序设计》思维导图)

面向对象(Object-Oriented, OO)的语言有一个标志,那就是它们都有类的概念,而通过类可以创建任意多个具有相同属性和方法的对象.而 ECMAScript 中没有类的概念,所以我们可以使用对象模拟出类.ECMA-262 把对象定义为:“无序属性的集合,其属性可以包含基本值.对象或者函数.”严格来讲,这就相当于说对象是一组没有特定顺序的值.对象的每个属性或方法都有一个名字,而每个名字都映射到一个值. 以下是<JavaScript高级程序设计>中介绍的创建对象的方法,我把它们总结成思维

《Javascript高级程序设计》阅读记录(二):第四章

这个系列之前文字地址:http://www.cnblogs.com/qixinbo/p/6984374.html 这个系列,我会把阅读<Javascript高级程序设计>之后,感觉讲的比较深入,而且实际使用价值较大的内容记录下来,并且注释上我的一些想法.做这个一方面是提升了我的阅读效果以及方便我以后阅读 另一个目的是,Javascript高级程序设计这本书内容很多也很厚,希望其他没有时间的人可以通过看这系列摘录,就可以大体学到书里面的核心内容. 绿色背景的内容是我认为比较值得注意的原著内容.

赠书《JavaScript高级程序设计(第三版)》5本

本站微博上正在送书<JavaScript高级程序设计>走过路过的不要错过,参与方式,关注本站及简寻网+转发微博:http://weibo.com/1748018491/DoCtp6B8r 本站联合简寻网#寻找千里码# 正在送书<javascript高级程序设计>第三版 5本,对这本书期待的朋友可以去参与哦. 关于简寻网: 我们是一群年轻的创业者,我们关注互联网发展,追逐技术的进步.互联网时代的到来,我们希望能通过技术的手段解决生活中的问题.招聘行业是一个传统而又新兴的行业,传统的流

javascript高级程序设计笔记1

最近在看javascript高级程序设计,看之前觉得自己的js学得还不错,然后,看了没几页就觉得自己好像没有学过一样,这主要写写我以前不完全了解的一些知识. 首先是关于基本数据类型的,从Number开始,以前经常用parseInt来转换数值,看过书才知道,这个函数的本意是专门用于把字符串转换成数值,而且以前也不知道它具体是怎么一个转换规则.先来看看Number()函数的转换规则: 1.如果是Boolean 值,true 和false 将分别被转换为1 和0.2.如果是数字值,只是简单的传入和返回

阅读摘录《javascript 高级程序设计》01

前言: 因为工作需要,所以开始主攻前台JS方面的技术.在以前的工作中,使用过这门脚本语言.但是都是比较凌乱的,用到什么学什么,只是为了实现业务,而去使用. 不会考虑到代码优化,封装对象等.今次特意借了这本<javascript 高级程序设计> ,在每个晚上抽出一个小时来看这本纸质书,系统的学习这门语言. 本文中摘录的都是一些在阅读中,感觉比较重要的信息.如果文中出现差错,欢迎园友拍砖. 摘录: 数据类型 undefined  使用var声明 但未对其初始化 Null null值 Boolean

1 《JavaScript高级程序设计》学习笔记(1)

欢迎关注本人的微信公众号"前端小填填",专注前端技术的基础和项目开发的学习. 首先,我将从<JavaScript高级程序设计>这本JavaScript学习者必看的经典教程开始,JavaScript的很多语法规则及习惯用法和Java极其相似,因此对于有Java基础的学习者来说,JS是很容易上手的.该系列的每次更新将对应原书的一章内容,本次更新对应原书的第三章,主要是一些基本概念,内容很简单, 知识点也较少. 1.和一般的编程语言一样,标识符可以由字母.数字.下划线和美元符组成

《javascript高级程序设计》 touch事件的一个小错误

最近一段时候都在拜读尼古拉斯大神的<javascript高级程序设计>,真的是一本好书,通俗易懂,条理比<javascript权威指南>好理解一些,当然<javascript权威指南>有权威指南的优点,不闲话了,入正题. 看技术书我通常都喜欢把书上的代码敲一遍,虽然很花时间,但只有动手敲的时候,脑中才有各种乱七八糟的想法蹦出来,为什么不能按照自己想的写,为什么书上的代码更好更优雅,还有没有别的办法去解决眼前的问题,想的多了,理解就很深,当然最重要的就是记得牢了.即使很浅

《Javascript高级程序设计》阅读记录(三):第五章 上

这个系列以往文字地址: <Javascript高级程序设计>阅读记录(一):第二.三章 <Javascript高级程序设计>阅读记录(二):第四章 这个系列,我会把阅读<Javascript高级程序设计>之后,感觉讲的比较深入,而且实际使用价值较大的内容记录下来,并且注释上我的一些想法.做这个一方面是提升了我的阅读效果以及方便我以后阅读 另一个目的是,Javascript高级程序设计这本书内容很多也很厚,希望其他没有时间的人可以通过看这系列摘录,就可以大体学到书里面的核

《JavaScript高级程序设计(第3版)》笔记-序

很少看书,不喜欢看书,主要是上学时总坐不住,没有多大定性,一本书可以两天看完,随便翻翻,也可以丢在角落里几个月不去动一下. 上次碰到了<JavaScript高级程序设计(第3版)>感觉真的真的不错,很多大神也在推荐这本书,所以就下载了电子版看了五章.前天决定还是买实体书来看,一是这本书确实不错,二是电子书怎么看怎么不舒服.今天早上收到书迫不及待的打开包裹,还没翻开书却发现书背在快递过程中已被磨损,心疼... 想来想去,决定无论如何要写看书笔记,一个一个字敲上来,监督自己,发帖为证! 可能每次发

读书时间:《JavaScript高级程序设计》 一

在2011年的时候第一次看了<JavaScript高级程序设计>第二版,那时见到手上的书,第一感觉真是好厚的一本书啊.现在再次回顾一下,看的是<JavaScript高级程序设计>第三版,并记录一些了内容. 第1章:JavaScript简介 JavaScript的历史.版本,可以看到一个有趣的故事. JavaScript是什么? 一个完整的JavaScript应该有3个不同的部分组成: 1. ECMAScript(核心) ECMAScript规定了语言的:语法.类型.语句.关键字.保