把外部 javascript 文件放在浏览器的后面, 可以提高浏览器的加载速度
defer="defer", 等到浏览器加载完毕后才执行脚本, 只对外部脚本链接有效
使用 var 定义的变量是局部变量, 省略 var 就是全局变量, 不推荐在局部变量里声明全局变量, 很难维护
......
javascript 中有 5 种简单的数据类型, 分别:
"undefined" 未定义,
"null" 空的, 被定义为空的对象引用, 所以它返还的数据类型是对象.
"Boolean" 布尔值,
"number" 数字,
"string" 字符串,
还有一种复杂的类型是 "object" 对象, javascript 数据类型具有动态性, 用 typeof 可以返还上面 6 种的数据类型
null 和 undefined 是值相等, 但是数据类型不相等
变量未赋值之前输出的数据类型是 undefined
null 用于没有真正保存的对象
2 boolean 布尔值, 这个类型只有两个字面量 true 和 false, 要将一个值转换成布尔值, 可以用 boolean()函数来转换,
其他的数据类型也可以转换,
number 数字类型, 小数点保存空间是整数的两倍, 推荐使用整数, 对于极小或极大的数可以用科学计数法 "e", 来表示.
在 javascript 中最小的数值保存在 Number.MIN_VALUE 中, 在浏览器中值是 5e-324,
最大的数值保存在 Number.MAX_VALUE 中, 在浏览器中值是 1.7976931348623157e+308
超出 javascript 范围的数值会自动转成 Infinity 值,
想知道数值是不是在它们之间用 isFinite()函数, 如果在就会返回 true, 反之就会返回 false,
NaN 是一个特殊的数值, NaN 与任何的额数值都不相等, 包括它本身,
isNaN()函数可以帮我们判断是不是数值, 可不可以转换为数值, 不能的函数会返回 true, 反之返回 false,
有三个函数可以将非数值转换成数值, 分别是:"Number()","parseInt()","parseFloat()",
string 字符串, 字符串有双引号或单引号表示, 字符串有转义序列
length 属性可以访问字符串的长度
字符串的特点是一成不变的, 一旦创建就不可以改变它的值
要将值转换成字符串有两个方法, toString()函数, 几乎每一个值都有这个方法,
但是 null 和 undefined 没有, 是 null 就返回 nul, 是 undefined 就返回 undefined
用 + 号将值和字符串绑在一起, 会自动转换为字符串
object 对象, 是一组数据和功能的集合, 对象可使用 new 操作符来创建, 可以对其添加属性和方法, 有圆括号
在 javascript 中 object 是所有对象的基础, 都具备属性和方法,
......
操作符, 用于操作数据值的操作符, 包括算术操作符和位操作符, 关系操作符和相等操作符, 它们能够适应多种值,
相应的操作符都会调用对象的 valueof()或者 toString()方法,
一, 算术操作符
1. 一元操作符, 只能操作一个值的操作符,
递增和递减操作符,++ 和 --
有前置型和后置型, 前置放在变量的前面, 后置放在变量的后面
前置型的一元操作符是在值基础上 + 1 和值的基础上 - 1, 有优先级, 所以整个语法是被看做从左到右求值
后置型的递增没有改变, 而递减改变了, 它是在原始的上减一, 没有优先级
2. 一元加和减操作符,+,-, 和数学上面的一样不会对数值造成影响, 相当于正和负
非数值会调用方法转换, 布尔值 true 会转换位 1, 布尔值 false 会转换成 0,
加和减操作符对非数值的转换规则都是相同的.
二, 位操作符, 对进制数值的转换
按位非 (NOT) 用~ 表示, 执行它就是返回数值的反码, 相反的,
按位与 (AND) 用 & 表示, 它有两个操作符数, 将操作符数转换为二进制, 对应的位是 1 才返回 1,0 就返回 0, 返回十进制,
按位或 (OR) 用 | 表示, 它有两个操作符数, 将操作符数转换为二进制, 对应的位是 1 就返回 1, 有一个是 1 也返回 1, 两个都是 0 就返回 0, 返回十进制,
按位异常或 (XOR) 用 ^ 表示, 它有两个操作符, 将操作符数转换为二进制, 对应的位有一个是 1 才返回 1, 两个事 1 或者 0, 就返回 0, 返回十进制,
左移 (用两个小于号<<表示) 相应的位数, 有符号的右移 (用两个大于号>> 表示)相应位数, 无符号的右移 (用三个大于号>>> 表示), 相应的位数
三, 布尔操作符, 一共有三个,"非(NOT)","与(AND)","或(OR)"
逻辑非 (NOT) 用! 表示, 可用于任何值, 不管任何数据类型, 它会返回一个布尔值, 然后对布尔值求反, 可以用两个逻辑非操作符, 规则是一样的,
逻辑与 (AND) 用 && 表示, 有两个操作数, 可用于任何类型的操作数, 不能使用未定义的值, 它是短路操作符, 第一个能够决定结果, 就不会求第二个的值
逻辑或 (OR) 用 || 表示, 有两个操作数, 它是短路操作符, 第一个求值为 true, 就不会对第二个求值,
四, 乘性操作符, 定义了 3 个乘性操作符, 乘法, 除法, 求模, 在操作非数值的时候, 后台会自动的转换类型,
乘法, 用 (*) 表示, 计算两个数值的乘积, 如果操作数不是数值, 后台会自动的转换为数值
除法, 用 (/) 表示, 执行第二个操作数除以第一个操作数, 如果操作数不是数值, 后台会自动的转换为数值
求模, 用 (%) 表示, 操作数都是数值, 常规计算, 返回除得的余数, 如果操作数不是数值, 后台会自动的转换为数值
五, 加性操作符和减性操作符, +,-
加法操作符, 用 (+) 表示, 也会在后台转换不同的数据类型, 操作数都是数值, 常规计算,
减法操作符, 用 (-) 表示, 操作数都是数值, 常规计算,
六, 关系操作符, 小于(<), 大于(>), 小于等于(<=), 大于等于(>=), 用于两个值的比较, 都会返回一个布尔值,
关系操作符也有相应的规则, 如下:
如果两个操作数都是数值, 执行数值比较,
如果两个操作数都是字符串, 比较两个字符串对应的字符编码值
如果一个操作数是数值, 将另一个操作数转换为数值, 在进行数值比较
如果一个操作数是布尔值, 将其转换为数值, 在比较
任何一个操作数 与 NaN 比较, 都是 false
七, 相等操作符, 确定两个变量是否相等是编程中非常重要的操作, 两个方案: 1. 相等和不相等, 先转换在比较, 2. 全等和不全等, 就比较不转换
相等和不相等, 相等用 (==) 表示, 不相等用 (!=) 表示, 这两个操作符都会先转换(强制转型), 然后在比较它们的相等性,
在转换不同数据类型时, 会遵循以下规则:
全等和不全等, 全等用 (===) 表示, 不全等用 (!==) 表示, 它们的操作数都是在未经转换的情况下返回布尔值,
为了保护代码的数据类型完整性推荐使用全等和不全等, 关键词排名查询工具请添加链接描述 http://www.iis7.com/a/lm/gjcpmcx/
来源: http://www.bubuko.com/infodetail-2753122.html