JavaScript高级程序设计2.pdf
第三章 基本概念
区分大小写 ECMAScript中的一切(变量、函数名和操作符)都区分大小写
标识符 指变量、函数、属性的名字或者函数的参数 第一个字符必须是一个字母、下划线或美元符号,其它字符可以是字母、下划线、美元符号或数字,ECMAScript标识符采用驼峰大小写格式
//单行注释
/*
多行注释
*/
严格模式(strict mode) 是为JavaScript定义了一种不同的解析与执行模型,对不确定的行为添加处理方式,可以在顶部添加"use strict",也可以指定函数在严格模式下执行
function doSomething ()
{ "use strict";
//函数体
}
JavaScript语句用分号;结尾
ECMA-262规定了保留字和关键字不能用做标识符
使用var操作符定义的变量将成为该变量作用域中的局部变量,变量在函数退出时会被销毁
省略var 将成为全局变量
定义多个变量
var message="hi",
found=false,
age=29;
ECMAScript中有5种简单数据类型(基本数据类型):Undefined、Null、Boolean、Number和String,还有一种复杂数据类型——Object,他的本质是由一组无序的名值对组成的
typeof操作符检测给定变量的数据类型
在使用var声明变量但未对其加以初始化时,这个变量的值默认就是undefined,
对未声明的变量只能进行一项操作,即使用typeof检测其数据类型,对其调用delete无意义
null表示一个空对象指针,如果一个变量将要用来保存对象,最好将此变量初始化为null
Boolean的两个字面量true和false区分大小写,True以及其他混合大小写的形式只是标识符,不是Boolean的值 转型函数Boolean()
八进制第一位是前导零(第一位是0,然后是八进制0~7)
十六进制前两位必须是x0后跟(0~9及A~F)
永远不要测试某个特定的浮点数值(小数)
Number.MAX_VALUE和Number.MIN_VALUE储存着ECMAScript能够表示的最大最小值
超出则为-Infinity(负无穷)Infinity(正无穷)
判断一个数是否有穷 isFinite()函数 ,返回布尔值
isNaN()确定是否为"非数(不能转化为数值)"
Number()可以用于任何数据类型
parseInt()只能用于字符串,从左往右进行转换,最好带上第二个参数(对前面转换字符的解释)
var num=parseInt("0xAF",16); //175
parseFloat()只能用于字符串,只解析十进制的浮点数
String类型(字符串类型)用''或""包围
string类型包含一些特殊的字符字面量也叫转义序列,用于表示非打印字符 \n换行 \t制表 \b空格 \r \f \\ \' \"等
如果字符串中包含双字节字符,length属性可能会不精确
字符串一旦创建,就不能改变,只能用其他字符串顶替
数值、布尔值、对象和字符串值都有一个toString()方法,在调用数值的toString()方法时可以传入一个参数作为,返回数值有效进制格式的字符串值
var num = 10;
alert(num.toString(2)); //"1010"
String(value)能将值value转换为字符串
ECMAScript中的对象就是一组数据和功能的集合,通过执行new操作符后跟要创建的对象类型名称来创建 var o =new Object ();
Object 的任何实例都拥有Object类型的方法
递增递减操作符,前置型后置型(操作变量之前or之后递增/递减)++1 --1 1++ 1--,会对非数值进行转换
一元加和减操作符 num=+num; num=-num同样对num进行类型转换
位操作符作用于最基本的层次上,按内存中表示数值的位来操作数值,位操作符先将64位的值转换成32位的整数,后执行操作,最后再将结果转换成64位的值
对有符号的整数,前31位用于表示整数的值,第32位用于表示数值的符号:0为正,1为负
十进制18
二进制10010
(2的4次方x1)+(2的3次方x0)+(2的2次方x0)+(2的1次方x1)+(2的0次方x0)
16+0+0+2+0
负数同样以二进制码存储,但使用的格式是二进制补码,要分三部分进行
1求这个数绝对值的二进制码
2求二进制反码,即将0替换为1,将1替换为0
3得到的反码加1
按位非(NOT)~ 执行按位非就是返回数值的反码,本质就是操作数的负号减去1
var num1=25;
var num2=~num1;
alert(num2); //-26
在对数值的底层操作速度会更快
按位与(AND)& 执行按位与就是将两个数值的每一位对齐,都为1时才返回1,任何一位是0结果都是0
按位或(OR) | 执行按位或就是至少有一个1返回1,两个都为0才返回0
按位异或(XOR)^ 仅仅只有一个1时才返回1,都是1或都是0则返回0
左移(<<)将原数值向左移动指定的位数 value<<6 用0填充空位,左移不会改变符号位
无符号右移(>>>)将数值的所有32位都向右移动,对正数来说无符号右移和有符号右移结果相同,对于负数来说相差非常大。
布尔操作符 逻辑非(!) 逻辑与(&&) 逻辑或(||)
乘性操作符 乘法(*) 除法(/) 求模(%)
加性操作符 加法(+) 减法(-)
关系操作符
相等操作符
条件操作符 var max = (num>num1) ? num: num1;
赋值操作符 =
逗号操作符 var num1=1,num2=2,num3=3
if(condition)
{
statement1
};
else if(condition)
{
statement2
};
else
{
statement3
};
------------------------------------------------------------------4.2任务告一段落-----------------------------------------------------------