一、语法
1.区分大小写:变量、函数名、运算符以及其他一切东西都是区分大小写的
2.变量时弱类型的
3.每行结尾分号可有可无
4.注释:单行// 多行/* */
二、变量
1.js解释程序在遇到没有声明过的标识符时,用该变量名创建一个全局变量,并将其初始化为指定的值。这就是为什么在函数内不用var声明的变量为全局变量的原因。。
因此在js中只有在函数内用var声明的变量为局部变量,其余的都是全局变量。
三、原始数据类型
1.5种原始数据类型:Undefined、Null、Boolean、Number、String
2.typeof运算符:判断一个值是否包含在某种数据类型的范围内。
typeof的返回值:undefined(变量为Undefined,有三种情况:1 变量为定义时 2 变量为初始化时 3 函数没有明确的返回值)
boolean(变量为Boolean)
number(变量为Number)
string(变量为String)
object(变量为对象 数组 Null)
function(函数)
其中Null返回object是因为Null被认为是对象的占位符,但从技术上来讲它任然是一个原始值。
3.Undefined类型:该类型只有一个值,即undefined。undefined是window对象的一个特殊属性,其值是未定义的。当定义一个变量而没有初始化时,js在预编译的时候会 将其初始值设为window.undefined属性的引用。
4.Null类型:该类型也只有一个值,即null。null表示尚未存在的对象
四、类型转换
Boolean值、数字和字符串的原始值都是伪对象。这意味着他们实际上具有方法和属性。
1.转换为字符串:Boolean值、数字和字符串都有toString()方法,可以把值转化为字符串。而Number类型的该方法有些特殊,有两种模式即默认模式和基模式。默认模式 下,无论采用什么表示 法声明数字,输出的都是十进制数。而基模式下,可以设置数字的基2,8,10,16。因此对数字调用toString(10)和toString()是相同的。
2.转换为数字:parseInt()和parseFloat()
3.强制类型转换:Boolean(value) Number(value) String(value)
当要转换的值是至少有一个字符的字符串、非0的数字或对象时,Boolean()函数将返回true
Number()强制转换和parseInt()的处理方式相同,只是他转换整个值,而不是部分值
String()可以将任何值转换为字符串,与toString()唯一不同之处在于,对null和undefined值强制转化时可以生成字符串而不引发错误
五、引用数据类型
与原始数据类型相对应的引用类型:
1.Boolean类 Number类
2.String类-------------------------------------------String的方法
instanceof运算符:用于识别正在处理的对象的类型
六、函数
1.函数无明确的返回值或者return语句没有参数,那么函数的返回值为undefined
2.无重载:js不支持重载,用相同的名字在同一个作用域中定义几个函数,不会引发错误,真正使用的是最后一个函数
3.arguments对象:存放函数参数的数组,js不会验证传递给函数的参数是否等于函数定义的参数个数,开发者定义的函数可以接受任意个参数,而不会引发错误,任意遗 漏的参数都会以undefined传递给函数,多余的参数将忽略