版权声明:本文为博主原创文章,转载请注明作者和出处。 https://blog.csdn.net/xinqing5130/article/details/80887631
概述:
ECMA-262
JavaScript 是一种流行的脚本语言
JavaScript 是一种轻量级的编程语言。
用法
HTML 中的脚本必须位于 <script> 与 </script> 标签之间。
脚本可被放置在 HTML 页面的 <body> 和 <head> 部分中。
示例
<script>
alert("我的第一个 JavaScript");
</script>
<script src="myScript.js"></script>
操作DOM
document.getElementById("demo").innerHTML = "我把你的值改了。";
字面量
数字(Number)字面量
3.14
1001
123e5
字符串(String)字面量
"John Doe"
'John Doe'
数组(Array)字面量
[40, 100, 1, 5, 25, 10]
对象(Object)字面量
{firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"}
函数(Function)字面量
function myFunction(a, b) { return a * b;}
关键字,声明变量的时候不要用这些词
abstract else instanceof super
boolean enum int switch
break export interface synchronized
byte extends let this
case false long throw
catch final native throws
char finally new transient
class float null true
const for package try
continue function private typeof
debugger goto protected var
default if public void
delete implements return volatile
do import short while
double in static with
注释
// 我不会执行
数据类型
undefined类型
var x; // x 为 undefined
对象类型null
var car=null
数字
var x1=34.00; //使用小数点来写
var x2=34; //不使用小数点来写
var y=123e5; // 12300000
var z=123e-5; // 0.00123
字符串
var carname="Volvo XC60";
var carname='Volvo XC60';
布尔
var x=true;
var y=false;
数组
var cars=new Array();
cars[0]="Saab";
cars[1]="Volvo";
cars[2]="BMW";
对象
var person={
firstname : "John",
lastname : "Doe",
id : 5566
};
对象寻址
name=person.lastname;
name=person["lastname"];
作用域
局部作用域
// 此处不能调用 carName 变量
function myFunction() {
var carName = "Volvo";
// 函数内可调用 carName 变量
}
全局变量
var carName = " Volvo";
// 此处可调用 carName 变量
function myFunction() {
// 函数内可调用 carName 变量
}
如果变量在函数内没有声明(没有使用 var 关键字),该变量为全局变量。
// 此处可调用 carName 变量
function myFunction() {
carName = "Volvo";
// 此处可调用 carName 变量
}
变量的生命周期
JavaScript 变量生命周期在它声明时初始化。
局部变量在函数执行完毕后销毁。
全局变量在页面关闭后销毁。
事件
HTML 事件可以是浏览器行为,也可以是用户行为。
onchange
onclick
onmouseover
onmouseout
onkeydown
onload
undefined和null
null 和 undefined 的值相等,但类型不等:
null是对象类型,undefined就是undefined类型
typeof undefined // undefined
typeof null // object
null === undefined // false
null == undefined // true
闭包
闭包是可访问上一层函数作用域里变量的函数,即便上一层函数已经关闭。闭包使对象拥有私有属性和方法称为可能。
var add = (function () {
var counter = 0;
return function () {return counter += 1;}
})();
add();
add();
add();
// 计数器为 3
正则表达式
var patt = /runoob/i
正则表达式是由一个字符序列形成的搜索模式。
正则表达式的使用
String.search() 方法
String.replace() 方法
RegExp.test() 方法
RegExp.exec() 返回匹配到的元素
正则表达式符号含义
i 不区分大小写
g 全局
m 执行多行匹配(不常用)
\d 查数字
\D 非数字
\w 查英文字母加数字加下划线
\W 非单词字符,等于这个[^A-Za-z0-9_]
\s 查找空白\f换页符 \n换行符 \r回车符 \t制表符 \v垂直制表符(这个不常用)
\S 非空白字符
\b 以什么结尾
\B 不以什么结尾
\uxxxx 中文
^ 开始位置
$ 结束位置
+ 至少一个
* 0个也可以,当执行exec方法时很贪婪,有多少取多少
? 0个也可以,当执行exec方法时只取一个
{n} 要出现多少次
{n,} 至少出现多少次
{n,m} 至少n次,最多m次
x|y 或者,一般跟小括号一起使用
自动类型转换
5 + null // 返回 5 null 转换为 0
"5" + null // 返回"5null" null 转换为 "null"
"5" + 1 // 返回 "51" 1 转换为 "1"
"5" - 1 // 返回 4 "5" 转换为 5