简单数据类型:字符串型、布尔型、数值型
变量名可以包含数字、字母、下划线、$,但不能以数字开头,大小写敏感,不能是JavaScript关键字、避开保留字
//JavaScript保留字 break else new var case finally return void catch for switch while continue function this with default if throw delete in try do instanceof typeof //ECMA 262规范的保留字 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 //部分浏览器中典型的保留字 alert eval location open array focus math outerHeight blur function name parent boolean history navigator parseFloat date image number regExp document isNaN object status escape length onLoad string
变量定义:var、let
变量作用域............
字符串型:单引号或双引号,支持转移序列、Unicode,其他类型可显式地用string()转换为字符串型,或自动转换
escape()/unescape() 把ASCII码转换成URL编码
encodeURI()/decodeURI() 能编码非ASCII字符集
encodeURIComponent()/decodeURIComponent() 能编码'&'、'+'、'=',可用于Ajax操作
布尔型:true和false、不必用引号引起来,其他类型可显式地用Boolean()转换为布尔型
数值型:JS的数字都是浮点,但小数部分可有可无
数值型没有小数点或小数部分是会被当做十进制整数,范围-253~253
浮点数范围应限制在-231~231
正无穷大(Infinity)、负无穷大(-Infinity),JS发生数学溢出是返回正无穷大
八进制(以数字0开头)、十六进制(以0x开头)
parseInt()/parseFloat() parseInt()返回整数部分,parseFloat()返回字符串中第一个非数值字母前数字的值
parseInt()提供第二个参数(范围在2到36之间),指定第一个参数的进制,转换为十进制
Number()
isFinite() Infinity和NaN返回false,其他返回true
null、undefined、NaN(字符串型和布尔型不能转换为数字时被认为是NaN)
isNaN()
const创建一个常量,只读
赋值语句(支持 var a = b = c = "" 赋值)、带运算符的赋值
算术语句
二元运算符:+、-、*、/ (结果是浮点数)、%
加法运算符有一个运算数是字符串时另一个若不是字符串则隐式转换成字符串,结果为两个字符串连接后的字符串
其它运算符,运算结果为数值,运算数可以是字符串,但字符串所包含的必须是数值
一元运算符:++(前/后缀)、--(前/后缀)、-
位运算符:&、|、^、<<、>>(带符号右移)、>>>(用0补足的右移)
条件语句
if 语句
if (expression) {
...
}
if (expression) {
...
} else if (expression) {
...
} else {
...
}
switch 语句
switch (expression) {
case label1:
statements
[break]
case label2:
statements
[break]
...
default:
statements
}
根据expression执行case语句(均不符合且有default则执行default),直到第一个break退出
条件运算符
<、<=、>、>=、==、!=、===(等同/严格等于 只有类型和值都相同才为真)、!==
逻辑运算符:&&、||、!
循环语句
while 循环
while (expression) {
...
}
do...while 循环
do {
...
} while (expression)
for 循环
for (initial value; condition; update) {
...
}
for (variable in object) {
...
}
非跨平台标准的foreach