js区分大小写
js命名
- 第一个字符必须是一个字母、下划线(_)或者一个美元符号($),其它字符可以是字母、下划线、$或数字
- ECMAScript标识符采用驼峰大小写格式(第一个字母小写,后面的每个单次的首字母大写)
- 关键字、保留字、true、false、null不能作为标识符
/关键字/
break,do,instanceof,typeof,case,else,new,var,
catch,finally,return,void,continue,for,switch,
while,debugger*,function,this,with,default,if,
throw,delete,in,try
/保留字/
abstract,enum,int,short,boolean,export,interface,
static,byte,extends,long,super,char,final,native,
synchronized,class,float,package,throws,const,
goto,private,transient,debugger,implements,
protected,volatile,double,import,public
js注释
//单行注释
/*
* 多行注释
*/
js的严格模式
"use strict"
js以(;)号结尾
js使用var声明变量(未声明的变量赋值在严格模式下会报PeferenceError错)
js的数据类型
- 基本数据类型
- undefined(只有一个值): var message;
- null (被认为是一个空的对象引用) : typeof(null) //object
- boolean(返回true,false)
- string
-
toString(),转换为字符串,可传基数转输出成不同的值:var num = 10; num.toString(2) //"1010",null与undefined没有这个方法
出现这种解决方式是:
-
Object.prototype.toString.call(null);
[object Null]
Object.prototype.toString.call(undefined);
[object Undefined]
- String()能将任何类型的值转换为字符串
- number
- 整数
- 十进制
- 八进制(第一位必须是0,然后是八进制数字序列(0~7),如果字面值中的数值超出范围,前面的0讲被忽略,后面的值将被当作十进制进行解析)var num = 079 //无效的八进制,解析为——79, 八进制在严格模式下无效
- 十六进制(前两位必须是0x,后跟(09及AF),其中字母可大写,可小写)
- 浮点数
- 浮点数(最高精度是17位小数),使用浮点数值计算会产生误差
- Infinity:正无穷
- -Infinity:负无穷
- isFinite(111) //true;判断该数值是否在正无穷和负无穷之间
- NaN: (任何涉及NaN的操作都会返回NaN,NaN与任何值都不相等,包括NaN本身)isNaN(),将传递的参数直接转换为数值,不能被转换的返回true
- 数值转换: Number()可以转换任何数据类型,parseInt(),parseFloat(),专门用于把字符串转换成数值parseInt('0xAF',16),解析成16进制的字符串parseFloat()只解析10进制值,会忽略前面的0,十六进制的字符串始终会被转换成0:parseFloat('0xA') //0
- 复杂数据类型
object的每个实例都具有一下属性和方法- constructor: 保存着用于创建当前对象的函数
- hasOwnProperty(propertyName): 检查给定的属性在当前对象示例中(而不是在实例的原型中)是否存在
- isPrototypeOf(object):检查传入的对象是否是传入对象的原型
- propertyIsEnumerable(propertyName):检查给定的属性是否能够使用for-in语句来枚举
- toLocaleString():返回对象的字符串表示,该字符串与执行环境的地区对应
- toString():返回对象的字符串表示
- valueOf():返回对象的字符串、数值、布尔值。与toString()方法的返回值相同