JavaScript ECMAScript客户端脚本语言标准
一、基本语法
1. 与html结合方式
1.1 内部JS
定义<script>, 标签体内容就是js代码。
1.2 外部JS
定义<script>, 通过src属性引入外部的js文件。
注意:
① <script>可以定义在html页面的任何地方。但是定义的位置会影响执行顺序。
② <script>可以定义多个。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<!--
内部JS
外部JS
-->
<!-- 内部样式 script想写在哪都行 -->
<script>
alert('Hello world!');
</script>
<script src="js/a.js"></script>
</head>
<body>
<input type="text" \>
<!--
IE 浏览器可以先显示input输入框,再弹框
<script>
alert('Hello world!');
</script>
-->
</body>
</html>
2. 注解
1.单行注释:// 注释内容
2.多行注释:/* 注释内容 */
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script>
// 单行注释
/*
多行注释1
多行注释2
*/
</script>
</head>
<body>
</body>
</html>
3. 数据类型
1.原始数据类型(基本数据类型)
① number: 数字。整数/小数/NaN(not a number 一个不是数字的数字类型)。
② string: 字符串。字符/字符串 “abc” “a” ‘abc’。
③ boolean: true/false。
④ null: 一个对象为空的占位符。
⑤ undefined: 如果一个人变量没有给初始化值,则会被默认赋值为undefined。
2.引用数据类型:对象
4. 变量
变量: 一小块存储数据的内存空间。
Java语言是强类型语言,而JavaScript是弱类型的语言。
强类型:在开辟变量存储空间时,定义了空间将来存储的数据的数据类型。只能村存储固定类型的数据。
弱类型:在开辟变量存储空间时,不定义空间将来的存储数据类型,可以存放任意的数据。
语法:
var 变量名 = 初始化值;
5. 运算符
5.1 一元运算符(只有一个运算数的运算符)
++,--,+(正号)
5.2.算数运算符
+ - * / % ...
5.3.赋值运算符
= += -= ...
5.4.比较运算符
> < >= <= == ===(全等于)
比较方式
① 类型相同:直接比较
字符串:按照字典顺序比较。按位注意比较,直到得出大小为止。
② 类型不同:先进行类型转换,再比较
=== 全等于。在比较之前,先判断类型,如果类型不一样,则直接返回false。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script>
/*
比较运算符:
> < >= <= == ===(全等于)
比较方式
1.类型相同:直接比较
字符串:按照字典顺序比较。按位注意比较,直到得出大小为止。
2.类型不同:先进行类型转换,再比较
=== 全等于。在比较之前,先判断类型,如果类型不一样,则直接返回false
*/
document.write((3 > 4) + '<br>');// false
document.write(('abc' > 'acd') + '<br>');// false
document.write(('123' == 123) + '<br>');// true
document.write(('123' === 123) + '<br>');// false
</script>
</head>
<body>
</body>
</html>
5.5.逻辑运算符
&& || !
&&: 与(短路)
||:或(短路)
!:非
其他类型转boolean:
1)number: 0或NaN为假,其他为真
2)string: 除了空字符串(“”),其他都是true
3)null&undefined:都是false
4)对象:所有对象都为true
5.6 三元运算符
? :
6. 流程控制语句
1.if…else…
2.switch
在java中,switch语句可以接受的数据类型:byte int short char 枚举(1.5) String(1.7)
switch(变量){
case 值:
}
在JS中,switch语句可以接受任意的原始数据类型
3.while
4.do…while
5.for
7. 特殊语法
1.语句以’;‘结尾,如果一行只有一条语句则’;'可以省略不写(不建议)
2.变量的定义使用var关键字,也可以不使用
用:定义的变量是局部变量
不用:定义的变量是全局变量(不建议)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>特殊语法</title>
<script>
// 1.语句以';'结尾,如果一行只有一条语句则';'可以省略不写(不建议)
var a = 3;
alert(a)
/*
2.变量的定义使用var关键字,也可以不使用
用:定义的变量是局部变量
不用:定义的变量是全局变量(不建议)
*/
b = 4;
alert(b);
function fun() {
var c = 4;
// alert(b);
}
fun();
alert(c);
</script>
</head>
<body>
</body>
</html>
二、基本对象
1. Function: 函数对象
1.1 创建
var fun = new Function(形式参数列表, 方法体);(了解)
function 方法名称(形式参数列表){
方法体
}
var 方法名 = function(形式参数列表){
方法体
}
1.2 属性
length: 形参的个数
1.3 特点
① 方法定义时, 形参的类型不用写。
② 方法是一个对象, 如果定义名称相同的方法,会覆盖重写。
③ 在JS中,方法的调用只与方法的名称有关,和参数列表无关。
④ 在方法声明中有一个隐藏的内置对象(数组)arguments,封装所有的实际参数。
1.4 调用
方法名称(实际参数列表);
2. Array: 数组对象
2.1创建
① var arr = new Array(元素列表);
② var arr = new Array(默认长度);
③ var arr = [元素列表];
2.2 特点
① JS中,数组元素的类型可变的。
② S中,数组的长度是可以变化的。
3. Boolean(略)
4. Date (略)
5. Math(略)
6. Number(略)
7. String(略)
8. RegExp: 正则表达式对象
8.1 正则表达式
① 单个字符:[]
如:[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次
③ 开始结束符号
^:开始
$:结束
8.2 正则对象
①创建
var reg = new RegExp(“正则表达式”);
var reg = /正则表达式/;
②方法
9. Global:
9.1 特点
全局对象,这个Global中封装的方法不需要对象就可以直接调用。 方法名();
9.2 方法
encodeURI() : url编码
decodeURI() : url解码
编码的字符更多:
encodeURIComponent() : url编码
decodeURIComponent() : url解码
9.3 URL编码
九幽沧澜 = %E4%B9%9D%E5%B9%BD%E6%B2%A7%E6%BE%9C