本文主要记录JavaScript 语法中,相对于其它语言的特殊之处。
1.JavaScript使用Unicode编码,每个字符两个字节,so,可以使用中文来命名变量或函数。
2.JS严格区分大小写,ps:构造函数必须首字母大写;函数命名采用骆驼命名法,第一个词语首字符小写,剩下词语首字符大写。
3.变量:JavaScript声明变量使用var语句,未赋值的变量初始值为undefined;
可以重复声明同一个变量,也可以重复初始化变量的值;
js可以不声明变量,直接为变量赋值,这时,会把变量做为全局变量存在;
var语句声明的变量是永久性的,不能够使用delete运算符删除变量;
4.基本数据类型:
null-- 空值,表示不存在,赋值为null,表示删除该属性
undefined-- 未定义,代表未赋值,也可以赋值为undefined
number---数值
string---字符串
boolean--布尔值
object--对象
ps:js将function(){} 归为function类型,null归为object类型。
4.1 数值Number
所有数值均为浮点型
整数-32位,浮点数-64位
toString()---根据参数把数值转换为相应进制的数值字符串;参数可以为2~36之间的任意整数;数值不能直接调用toString()方法,必须使用小括号强制运算数值变量直接量后,再调用方法;
数值运算不精确,所以必须指定精度以保证结果正确:如:num=0.1+0.2//结果为0.300000000004,想要得到0.3,需要这样做:num=(1+2)/10
特殊数值: Infinity 无穷大,-Infinity为负无穷大
NaN,非数值
Number.MAX_VALUE 最大数, Number.MIN_VALUE 最小数,接近0的值
Number.POSITIVE_INFINITY, Number.NEGATIVE_INFINITY 负无穷大
isFinite() 函数能够检测NaN、正负无穷大,如果参数可以转换为number,且不是NaN和正负无穷大,则返回true.
4.2 字符串
js不区分字符串和字符
字符串必须在单引号或双引号中,单引号和双引号可以相互包含;
字符串必须写在一行内;
反斜杠仅对特殊字符有转义功能,否则将被忽略;
5 严格模式
启用严格模式:在脚本文件第一行加入注释字符串"use strict",这是全局模式;在函数内第一行,则为局部模式,整个函数以严格模式运行。
6.检测类型:
typeof、
constructor---表示构造器,该属性值引用的是构造当前对象的函数;用来检测对象、数组等复杂数据,如:var o={}; alert(o.constructor == object)
7. toString 设置数字显示的小数位数
toFixed数值转换为字符串,并显示小数点后的指定位数。
toExponential()将数值转换为科学计数法显示的字符串,参数为小数点位数
toPrecision() 科学计数法,指定有效数字位数,而不是小数点位数;
8. 转为布尔值
使用双重逻辑非:
任何一个值,如果在前面加一个逻辑非运算符,JS会把表达式看作逻辑运算符,执行运算时,先把值转为布尔值,再执行逻辑非。
任何一个值,如果在前面加两个逻辑非运算符,得到该值转为布尔值的真实值。
使用Boolean()构造函数转换
9.对象转为值
数组转换为值:如果为空数组,则转为0;如果数组仅包含一个数字,则被转换为该数字的值;如果数组仅包含多个数字或仅包含一个非数字元素,则返回NaN
10.运算符:
10.1 小括号运算符
没有固定数目的运算数。
第一个运算数必须是函数名或引用函数的表达式,其后附加小括号运算符,小括号中可以包含数量没有限制的运算数,它们之间通过逗号进行分隔。语法如下:
f(a,b,c...)
小括号运算符在执行时:先对每个运算数进行计算,然后调用第一个运算数所指的函数,同时把余下的运算数的值传递给它做参数。
总结:也就是说,无论f()函数有没有参数,有几个参数,只要名字是f,就可以调用。
10.2 void运算符
执行运算数,却忽略运算数的返回值,结果总返回一个undefined