一、概述
1. 什么是javaScript
代码语言:javascript复制* 客户端脚本语言,不能独立运行
2. JavaScript是干啥的
代码语言:javascript复制* HTML:控制网页内容
* CSS:控制网页样式
* JS:控制网页行为
二、ECMAScript
1. 与HTML结合方式
代码语言:javascript复制① 内部
* <script> </script>
② 外部
* <script type="text/javascript" src="URL"></script>
③ 位置
* 可以出现在任何地方,一般位于 body 最后,便于资源加载
2. Script基本语法
代码语言:javascript复制① 注释
//单行注释
/*多行注释*/
② 数据类型
* number:数字/NaN(不是数字的数字)
* string:字符串
* boolean:布尔
* null: 空,占位符
* undefined:未定义
③ 变量
* var 变量名
* script是弱类型语言,开辟变量空间时不指定变量类型,可以存放任意类型的数据
* typeof():获取数据的类型
* null 类型得到是 object【古老的bug并未解决】
④ 一元运算符
、 -- 、 (-)【 (-)会自动进行类型转换】
"123" ---> 123
"a123" ---> NaN
⑤ 算数运算符
、 - 、 * 、 / 、 % 【注意,script中 / 可能有小数】
⑥ 比较运算符
> 、 < 、 ==(会先进行类型转换,再比较) 、 ===(全等于)
⑦ 逻辑运算符
&& 、 || 、 ! 【没有 & 、| 】
number:0或NaN为假,其他为真
string:除了空字符串(""),其他都是true
null & undefined:都是false
对象:所有对象都为true
⑧ 流程控制语句
* 与Java大体一致
* 特殊
switch:
- 在java中,switch语句可以接受的数据类型: byte int shor char,枚举(1.5) ,String(1.7)
- 在JS中,switch语句可以接受任意的原始数据类型
3. 基本对象
代码语言:javascript复制① Function
* 定义
function f(param) {};
var f = function(param) {};
* 注意
- 方法定义是,形参的类型不用写,返回值类型也不写。
- 方法是一个对象,如果定义名称相同的方法,会覆盖
- 在JS中,方法的调用只与方法的名称有关,和参数列表无关
- 在方法声明中有一个隐藏的内置对象(数组),arguments,封装所有的实际参数
② Match
* random
产生[0,1)的伪随机数
* ceil
向上取整
* floor
向下取整
* round
四舍五入
③ Array【类似于ArrayList<Object>】
* 定义
var arr = new Array();
var arr = [];
* 方法
push:向数组中加入一个数据
join(xx):以参数分隔符将数组拼接为字符串返回
* 特点
变长【属性:length】
④ Data
* 定义
var time = new Data();
* 方法
toLocaletionString:将日期格式转为本地格式的字符串
getTime:获取当前时间到1970-1-1 00:00:00 00 的毫秒值
⑤ RedExp
* 正则表达式:定义字符串的组成规则。
- 单个字符:[]
如: [a] [ab] [a-zA-Z0-9_]
特殊符号代表特殊含义的单个字符:
d:单个数字字符 [0-9]
w:单个单词字符[a-zA-Z0-9_]
- 量词符号:
?:表示出现0次或1次
*:表示出现0次或多次
:出现1次或多次
{m,n}:表示 m<= 数量 <= n
m如果缺省: {,n}:最多n次
n如果缺省:{m,} 最少m次
- 开始结束符号
^:开始
$:结束
* 正则对象:
- 创建
var reg = new RegExp("正则表达式"); //不推荐使用
var reg = /正则表达式/;
- 方法
test(参数):验证指定的字符串是否符合正则定义的规范
⑥ Global
* 特点:全局对象,这个Global中封装的方法不需要对象就可以直接调用。
* 方法:
- encodeURI():url编码
- decodeURI():url解码
- encodeURIComponent():url编码,编码的字符更多
- decodeURIComponent():url解码
- parseInt():将字符串转为数字
* 逐一判断每一个字符是否是数字,直到不是数字为止,将前边数字部分转为number
- isNaN():判断一个值是否是NaN
* NaN六亲不认,连自己都不认。NaN参与的==比较全部为false
- eval():传入 JavaScript 字符串,并把它作为脚本代码来执行。
推荐阅读 ECMAScript 6