document.body.contentEditable=true
局部变量会在函数运行以后删除,全局变量会在页面关闭以后删除
作用域:
var city = 'BeiJing';
function Bar() {
console.log(city);
}
function f() {
var city = 'ShangHai';
return Bar
}
var ret = f()
ret()
打印结果是BeiJing
闭包:
var city = 'BeiJing';
function f3() {
var city = 'ShangHai';
function inner() {
console.log(city);
}
return inner;
}
var ret = f3();
ret();
打印结果是ShangHai
关键点在于调用函数的时候找函数定义过程
词法分析:
1.分析 //Active Object AO
1.先看参数
2.再看局部变量
3.再看函数定义 // 优先级比参数高
2.执行
var age = 18
function foo() {
console.log(age);
var age = 22; //创建AO.age undefined,执行的时候赋值22
console.log(age);
function age() { //赋值AO.age -->func
console.log('呵呵');
}
console.log(age);
}
foo()
结果 :
ƒ age() {
console.log('呵呵');
}
22
22
对象:
var a1 = [1,2,3];
var a2 = new Array(1,2,3);
var n = 1; // number格式
var n2 = new Number(1) //Object格式
内置对象:
数据类型:
Number:
parseInt("111")
parseFloat("11.11")
String
Boolean
组合对象:
Array类型
Date类型:
var d1 = new Date();
console.log(d1); // Object格式
console.log(d1.toLocalString()) // String格式
var d2 = new Date("2018/12/12 20:03") // 参数格式灵活
console.log(d1.toLocalString())
方法:
.getDate()
.getDay() // 获取星期
.getYear()
.getFullYear()
.getTime() // 时间戳
JSON对象:
var s = '{"name":"ALEX","age":18}';
var ret = JSON.parse(s); // 字符串转成JS对象,注意格式,字符串必须双引号
var s2 = JSON.stringify(ret); // JS对象转成字符串
Math对象:
Math.abs(-1)
abs()
exp()
floor() // 地板舍入
round() // 四舍五入
log()
max()
min()
pow() // pow(10,2)
random() // 0~1
sin()
sqrt() // 平方根
tan(x)
高级对象:
Object自定义对象, Error对象, Function对象, Global全局对象
自定义对象:
var person = {name: '小强', age:18};
//JS对象中,键(属性)不用加引号,并且自动把单引号变成双引号(Json)
var p1 = new Object();
p1.name = "alex";
p1.age = 18;
//遍历自定义对象:
for (var i in p1){
console.log(i);
console.log(p1[i]);
}
RegExp对象(正则):
var reg1 = new RegExp("^[a-zA-Z][a-zA-Z0-9_]{5,11}$");
var ret1 = reg1.test("alexSB");
/(^[a-zA-Z][a-zA-Z0-9_]{5,11}$)/.test("xiaoqiang"); // 简化写法
注意事项:
1.正则表达式中间一定不能有空格
2.不传值相当于传了一个undefined,并当做字符串使用
3.正则的两种模式
var ss = "Alexdashabi";
var s3 = ss.replace("a", "哈哈"); //不改变默认字符串,而是生成一个新的,只能替换一次
var s4 = ss.replace(/a/gi, "哈哈"); // g表示全局(替换所有) i 表示忽略大小写
4.当正则表达式使用了g全局模式,并且去检测字符串的时候,会有一个lastIndex记住上一次匹配成功的位置