由于js高级程序设计(第三版)的第3章很琐碎又很多,所以整理出来,方便记忆。
【基础知识】
1.ECMAScript的一切都是区分大小写的。
2.标识符:变量、函数、属性的名字,或者函数的参数。
命名规则:第一个字符必须是 一个字母,下划线(_)或一个美元符号($).【不能用数字开头】
其他字符可以是字母、下划线、美元符号或者数字。
标识符采用驼峰大小写格式【第一个字母小写,剩下每个单词的首字母大写】
不能把保留字、关键字等作为标识符。
3.注释:(与C语言一致)
// 单行注释
/*
多行注释
*/
4.严格模式(strict mode)
在代码的顶部 写上“use strict”
严格模式下,一些不确定的行为会得到处理,或者抛出错误。
5.语句
a. 语句以分号结尾。
b.多句语句时,建议使用代码块【使代码看起来更加清晰】
6.变量:松散类型
var 关键字(未初始化时,保存undefined)
注意:用var操作符定义的变量是该作用域中的局部变量。
示例:function test()
{
test=10;
}
test();
alert(test); // 10
ps:省略var关键字的时候,test变量是全局变量。【由于全局变量不好维护,一般不建议】
【数据类型】
5种简单数据类型(基本数据类型):Undefined,Null,Boolean,Number,String
1种复杂数据类型:Object;
typeof操作符:用来检测数据类型。可能返回【undefined,boolean,number,string,object,function】
注意:typeof null==object; //是正确的。
typeof (messagr) ; //()是可有可无的,并非必须。因为typeof是操作符,不是函数。
Undefined类型:
变量未声明时,保存的值。【一般不需要,显式让变量值为undefined】
Null类型:
表示一个空对象指针。【变量将用来保存对象,就先将该变量初始化为null】
Boolean类型:
1.两个值(true,false)【注意区分大小写】
2.可对任何类型的数据使用转型函数Boolean(),会返回对应的boolean。
【有些场景会隐式转化】
3.转化为true的情况:true,任何非空字符,任何非零数字,任何对象;
4.转化为false的情况:false,空字符,N/A或者0,null,undefined;
Number类型:
1. 十进制:55
八进制:079;【第一位数必须是0,后面数为(0-7)之间】
十六进制:0xA;【以0x开头,后面数字可以为(0-9和A-F】
2. 在进行算术运算时,所有的十进制和八进制都将被转化为十进制。
3..浮点数【数值中必须包含一个点,且小数点后必须有一位数字。如果没有,会自动转化为整型】
4.科学计数法:6个0以上的浮点数可以转化
var floatNum=3.125e7;31250000
var floatNum=5e-7;
5. 数值范围:5e-324 【超过这个范围,正数转化为Infinity,负数转化为-Infinity】
isInfinity():用来判断某个数是否在最大数和最小数直接。是则返回true.
6. NaN(非数值,not a Number)【表示一个本来要返回数值的操作数未返回操作数的情况】
特点:①任何涉及NaN的操作,都会返回NAN.
②NaN与任何值都不相等,包括本身。
isNaN()函数,判断一个变量是否不是数值;【该方法适用于对象】
alert(isNaN(10)) ; false
alert(isNaN("BLUE")) ;true;
☆☆数值转换:
Number(),:可以用于任何数据类型
parseInt(),parsrFloat()用于把字符串转换为数值。
Number()转换规则:
Boolean类型:true→1;false→0;
null类型:0;
undifined:NaN;
如果是字符串:1.字符串包含数字和有效的字符串,转换成相应的数值形式。【有前导0时会被忽略】
2.字符串中包含16进制的格式,则会被转换为相应的十进制数值
3. 字符串为空,转换为0
4. 有其他字符,转换为NaN
如果是对象:调用对象的valueOf()方法,再按照前面规则转换,结果为NaN时。继续调用toString()方法继续转换。
parseInt()用来处理整数。【如果字符的第一个字母不是数字字符或者符号,则返回NaN】
var num1=parseInt("1123abc1"); //1123
var num1=parseInt("abc1"); //NaN
var num1=parseInt("0xA"); //10
var num1=parseInt(22.4); //22 小数点后部分将被截去
可提供第二个参数表示进制。[多数情况下,指定基数很有必要]
var num1=parseInt("0xAF",16); //175
var num1=parseInt("AF",16); //175
var num1=parseInt("AF"); //NaN
parseFloat()【只解析十进制,没有指定第二个基数的形式】
var num1=parseFloat("1123abc1"); //1123 整数
var num1=parseFloat("0xA"); //0 不能解析十六进制数
var num1=parseFloat("22.25.14"); //22.25 只有第一个小数点有效。
String类型:
1.由零个或者多个字符组成的字符串。【用单引号或者双引号表示,但是左右括号必须匹配】
2.【转义字符】 常见的\n,换行,\t制表
3.字符的长度:str.length【任何字符串的长度都可以通过length属性取得,转义字符表示一个字符】
4.字符的特点:字符串是不可变的。如果要改变某个变量中存的字符串,必须要销毁原来的字符串,然后再用另外一个包含新值的字符串填充该变量。‘
5.将其他值转换为字符串:数值,布尔值,对象,字符串都有toString()方法。
var age=11;
var ageString=age.toString(); //字符串“11”
【基本不用传入参数,如果传入参数,表示进制数。默认时10进制】
var ageString=age.toString(2); //字符串“1011”
6.String()方法没有限制(null 和undefined也可使用)
①.其他数据类型与toString()一样
②String(null); //"null"
③.String(undefinde); //"undefined"