首页 > 代码库 > 《javascript高级程序设计》笔记(三)
《javascript高级程序设计》笔记(三)
一、语法
标示符:第一个字符必须是字母、下划线或美分符号。
不能把关键字、保留字、true、false、null作为标示符。
严格模式
"use strict"
二、关键字和保留字
break delete function return typeof
case do if switch var
catch else in this void
continue false instanceof throw while
debugger finally new true with
default for null try
abstract double goto native static
boolean enum implements package super
byte export import private synchronized
char extends int protected throws
class final interface public transient
const float long short volatile
三、变量
不初始化会保存undefined值
用var定义的是局部变量
四、数据类型
typeof返回数据类型,unll会返回object,因为unll被认为是空的对象引用。
undefined
null 最好把将来用来保存对象的变量初始化为null
boolean
number 八进制0开始 十六进制0x
isFinite()函数 负无穷 Number.NEGATIVE_INFINITY 正无穷Number.POSITIVE_INFINITY
NaN 表示错误的数值,与自身也不相等
isNaN()函数:判断参数是否不是数值
数值转换 Number() 忽略字符串前导的0——"011"→"11" 十六进制转换成十进制 浮点保留
如果是对象,先用valueOf(),如果返回NaN,再调用toString()
parseInt() 忽略前导空格,第一个不是数字或负号就返回NaN,符合就一直解析直到遇到非数字或结束
ECMAScript5 070得到70 ,加上第二个参数作为基数
遇到小数点也会就停止
parseFloat() 遇到第一个小数点不停止
string \\ \‘ \"
\n 换行 \t制表 \b退格 \r 回车 \f进纸
length属性
toString()方法 可以传递基数
String()方法 值是null、undefined,返回null、undefined
用+和""加起来可以转换为字符串
Object
五、操作符
++ --
+ -
~按位非 操作数的负值减1
& | ^按位异或
<< >>有符号
<<< >>>无符号
! && ||
* / %
+ 如果只有一个操作数是字符串,另一个操作数也转换为字符串 每个加法是独立执行的
-
> < >= <= 大写字母的字符编号比小写字母小 toLowerCase方法比较
"23" < "3" 字符串比较的是第一个
== != 先转换操作数
null与undefined相等
如果两个操作数都是对象,则比较它们是不是同一个对象。
=== !== 不转换
? :
=
,
六、语句
if
do while
while
for
for in 枚举对象的属性
for (var propName in window) { document.write(propName); document.write("<br />"); }
每次循环将window对象中存在的一个属性名赋值给propName,顺序不可预测
label 添加标签,与循环语句配合
break continue
var num = 0; outermost: for (var i=0; i < 10; i++) { for (var j=0; j < 10; j++) { if (i == 5 && j == 5) { break outermost; } num++; } } alert(num); //55
with 将代码的作用域设置到一个特定的对象。
with(location){ var qs = search.substring(1); var hostName = hostname; //unavailable when viewing from a local file var url = href; }
每个变量被认为是局部变量,如果在局部环境找不到该变量的定义,就会查询location对象中是否有同名的属性。如果发现了同名属性,则以location对象属性的值作为变量的值。
switch 不发生类型转换
七、函数
arguments对象访问参数 可以和命名参数一起用
没有重载,定义了两个名称相同的函数,则该名字只属于后定义的函数。
《javascript高级程序设计》笔记(三)