JS高级程序设计(第2版)读书笔记第1-3章

来源:互联网 发布:怎样在爱淘宝发布宝贝 编辑:程序博客网 时间:2024/06/09 19:23

第1章 JavaScript简史

在JavaScript DOM编程艺术 (第2版) 读书笔迹中已经写过,不再重复。


第2章 在 HTML 中使用 JavaScript

script 标签的属性:
charset: 可选。表示通过src 属性指定的代码的字符集。大多数浏览器会忽略它的值,所以这个属性很少有人使用。
defer: 可选。 表示脚本可能延迟到文档完全被解析和显示后再执行。(和把脚本放到文档结尾位置效果相同。但该属性目前只有IE和firefox3.5以上浏览器才支持。)
language: 已废弃。
src: 可选。表示包含要执行的外部文件。(外部文件的.js后缀不是必须的,可以缺省)
type: 必需。表示代码使用的脚本语言的内容类型。

XHTML中的用法:
CDATA: 包含不需要解析的任意格式的文本内容。
<script type="text/javascript">
//<![CDATA[

js代码……

//]]>
</script>

noscript标签:不支持javascript提示标签,支持一就不显示标签。
<noscript>
<p>你的浏览器不支持javascript或javascript被禁用。</p>
</noscript>

第3章 基本概念

语法:
标识符:
⒈ 第一个字符必须是字母、下划线(_)、美元符($)
⒉ 其他字符可以是字母、下划线、美元符或数字。

关键字:用于表示控制语句和开始或结束,或者用于特定操作等。
break case catch continue default delete do else finally for function if in instanceof new return switch this throw try typeof var void while with

保留字:可能在将来被用作关键字。
abstract boolean byte char class const debugger double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile

数据类型:
Undefined:
只有一个值,undefined。当用var 声明变量但未初始化时这个的变量的值就是undefined
var msg;
alert(msg == undefined); // true

Null:
只有一个值,null。表示一个空对象的指针。
var car = null;
alert(typeof car); // "object"

如果定义的变量准备在将来用于保存对象,那么最好把该变量的值初始化为null 而不是其他值。这样一来,只要检测null值就可以知道相应的变量是否已经保存了一个对象的引用。
if(car != null){
// 对car对象执行操作
}

Boolean:
true false两个值


Number:
整数和浮点数
整数还可以通过八进制(以8为基数 第一位是0 后面是0-7)或十六进制(以16为基数 前两位 0x 后面是0-9 及 A-F 字母可以大写也可能小写)
var num1 = 070; // 八进制 56
var num2 = 079; // 无效八进制--解析为79
var num3 = 08; // 无效八进制--解析为8

var num4 = 0xA; // 十六进制 10
var num5 = 0x1A;// 十六进制 31

// 这里是使用IEEE754数值的浮点计算的通病
var n1 = 0.1;
var n2 = 0.2;
var sum = n1 + n2;
//alert(sum); // 0.30000000000000004

//最小值 5e-324
var min = Number.MIN_VALUE;
//alert(min);
//最大值 1.7976931348623157e+308
var max = Number.MAX_VALUE;
//alert(max);

// isFinite() 判断一个是数是不是有穷的
// 无穷大的数不能参与计算
// alert(isFinite(max+max)); // false;

// Infinity 正无穷
var negative = Number.NEGATIVE_INFINITY;
// -Infinity 负无穷
var positive = Number.POSITIVE_INFINITY;
// alert(positive);

非数字NaN(Not a Number)
⒈ 任何NaN的操作都返回NaN
⒉ NaN 与任何值都不相等

alert(NaN == NaN); // false;
alert(isNaN(NaN)); // true;

数值转换:
Number();
parseInt();
parseFloat();

String:
转移符:
\n 换行
\t 指标
\b 空格
\r 回车
\f 进纸
\\ 斜杠
\' 单引号
\" 双引号
\xnn 十六进制代码nn表示一个的字符
\unnnn 十六进制代码nnnn表示的一个Unicode字符

Object类型
var o = new Object();
对象的每个实例的属性和方法:
constructor 保存着用于创建当前对象的函数。
hasOwnProperty(propertyName) 用于检查给定的属性在当前实例中是否存在。
isPrototypeof(object) 用于检测传入的对象是否是另一个对象的原型。
propertyIsEnumerable(propertyName) 用于检测给定的属性是否能够使用for-in语句来枚举。
toString() 返回对象的字符串表示。
valueOf() 返回对象的字符串、数值或布尔值表示。


操作符
一元操作符
⒈ 递增递减 ++ --
⒉ 一元加一元减 + -
位操作符
按位非(NOT)
按位与(AND)
按位或(OR)
按位异或(XOR)
左移 <<
有符号右移 >>
无符号右移 >>>

布尔操作符:
逻辑与(&&)
逻辑或(||)
逻辑非(!)


加法(+)
减法(-)
乘法(*)
除法(/)
求模(%)(余数)

关系操作符:
小于(<)
小于等于(<=)
大于(>)
大于等于(>=)
等于(==)
全等(===)

乘/赋值(*=)
除/赋值(/=)
模/赋值(%=)
加/赋值(+=)
减/赋值(*=)
左移/赋值(<<=)
有符号右移/赋值(>>=)
无符号右移/赋值(>>>=)

语句:

if(){
//code
}else{
//code
}

do{
//code
}while()

while(){
//code
}

for(){
//code
}

for( in ){
//code
}

switch(){
case value : code
break;
case value : code
break;
default : code
}

break 退出循环
continue 退出当前循环,进入到下一次循环

0 0
原创粉丝点击