JavaScript每日学习日记(2)
8.13.2019
1. 正则表达式常见字符串方法:
search( ) , replace( )
var str = "Visit Website";
var n = str.search(/website /i);
var str = "Visit Microsoft!";
var res = str.replace("Microsoft", " Website ");
2. 如果未尚未声明的变量赋值,该变量会自动变成全局变量。
myFunction();
// 此处的代码能够使用 carName 变量
function myFunction() {
carName = "porsche";
}
3. JavaScript会默认地将所有声明提升到当前作用域顶部。但用let和const声明的变量不会被提升。初始化不会被提升。
4. JavaScript 中this 关键词指的是它所属的对象。它拥有不同的值,具体取决于它的使用位置:
在方法中,this 指的是所有者对象。
单独的情况下,this 指的是全局对象。
在函数中,this 指的是全局对象。
在函数中,严格模式下,this 是 undefined。
在事件中,this 指的是接收事件的元素。
5. 可以使用 let 关键词声明拥有块作用域的变量。在块 {} 内声明的变量无法从块外访问。在相同的作用域,或在相同的块中,通过 let / var重新声明一个 var / let 变量是不允许的。
6. 在字符串中换行需在字符串中使用“\”
var x = "Hello \
World!";
7. JavaScript不会为每个代码块创建新的作用域。
for (var i = 0; i < 10; i++) {
// 代码块
}
return i;
此处i=10 而不是undefined
8.HTML 表单验证能够通过 JavaScript 来完成。
如果某个表单字段(fname)是空的,那么该函数会发出一条警告消息,并返回 false,以防止表单被提交出去。
9. 函数表达式可以作为“自调用”。
自调用表达式是自动被调用(开始)的,在不进行调用的情况下。
假如表达式后面跟着 ( ),函数表达式会自动执行。
(function () {
var x = "Hello!!"; //我 用 我 自 己
})();
10. JavaScript闭包:实现函数拥有“私有”变量。例:
var add = (function () {
var counter = 0;
return function () {return counter += 1;}
})();
add();
add();
变量 add 的赋值是自调用函数的返回值。
这个自调用函数只运行一次。它设置计数器为零(0),并返回函数表达式。
这样 add 成为了函数。最“精彩的”部分是它能够访问父作用域中的计数器。
计数器被这个匿名函数的作用域保护,并且只能使用 add 函数来修改。
闭包指的是即使在父函数关闭之后也有权访问父作用域的函数。