Javascript高级程序设计(书中总结)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 判断是不是引用类型。
以上是关于Javascript高级程序设计(书中总结)的主要内容,如果未能解决你的问题,请参考以下文章
《JavaScript高级程序设计(第二版)》学习函数表达式