个人主页:丷从心
系列专栏:爬虫
学习指南:【进收藏夹吃灰】爬虫学习指南
Node.js
下载
PyCharm插件
- 安装
Node.js
插件 - 配置
Node.js
路径
注释
单行注释
// 单行注释
多行注释
/*
多
行
注
释
*/
变量
变量名
- 变量名只能以字母、
$
或_
开头
var
var
声明的变量可以修改var
声明的变量可以重复声明,实际上重复的声明会被忽略
var name = '从心';
var name;
console.log(name);
从心
var
声明的变量作用域为全局作用域或函数作用域,在浏览器环境下,使用var
声明的全局作用域变量属于window
对象的属性var
声明的变量存在变量提升,不存在暂存性死区var
声明的变量名与函数名同名时,变量有效,函数无效
var a = 0;
function a() { }
console.log(a);
0
let
let
声明的变量可以修改let
声明的变量不可以在同一作用域内重复声明let
声明的变量作用域为全局作用域或块级作用域,在浏览器环境下,使用let
声明的全局作用域变量不属于window
对象的属性let
声明的变量不存在变量提升,存在暂存性死区
window对象的属性
- 变量在没有用
var
或let
修饰时是window
对象的属性
function a() {
console.log(this); // this 指向 window
this.a = 0; // 即 window.a = 0,此时 window 下的 function a 已经被该变量覆盖了
var a = 1;
return 2;
}
console.log(a); // function a
console.log(a());
console.log(a); // this.a
ƒ a() {
console.log(this);
this.a = 0; // 即 window.a = 0,此时 window 下的 function a 已经被该变量覆盖了
var a = 1;
return 2;
}
Window {window: Window, self: Window, document: document, name: '', location: Location, …}
2
0
常量
const
const
声明的常量不可以修改const
声明的常量不可以在同一作用域内重复声明const
声明的常量作用域为全局作用域或块级作用域const
声明的常量不存在变量提升,存在暂存性死区
函数
定义
一般定义
function function_name(a, b) {
return a + b;
}
表达式定义
var function_name = function (a, b) {
return a + b;
};
构造器定义
var function_name = new Function('a', 'b', 'return a + b');
属性
arguments
function function_name() {
console.log(arguments);
return arguments.length;
};
console.log(function_name(0, 1, 2));
[Arguments] { '0': 0, '1': 1, '2': 2 }
3
方法
toString()
function function_name(a, b) {
return a + b;
}
console.log(function_name.toString());
function function_name(a, b) {
return a + b;
}
自调用函数
!(function (a, b) {
console.log(a + b);
})(0, 1);
1
箭头函数
// var function_name = (a, b) => { return a + b; }
var function_name = (a, b) => a + b;
console.log(function_name(0, 1));
1
对象
取值
var person = {
name: '从心',
'my-age': 21,
180: false
}
my_name = 'name'
console.log(person[my_name]);
console.log(person['my-age'])
console.log(person[180]);
从心
21
false
作用域
JavaScript
采用静态作用域(词法作用域)
var a = 0;
function func_1() {
console.log(a);
}
function func_2() {
var a = 1;
func_1();
}
func_2();
0
事件
onclick
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>复选框操作</title>
</head>
<body>
唱:<input type="checkbox" name="checkbox" value=1><br>
跳:<input type="checkbox" name="checkbox" value=2><br>
Rap:<input type="checkbox" name="checkbox" value=3><br>
篮球:<input type="checkbox" name="checkbox" value=4><br>
<button onclick="op_checkbox('checkbox', 'check_all')">全选</button>
<button onclick="op_checkbox('checkbox', 'check_out_all')">全不选</button>
<button onclick="op_checkbox('checkbox', 'inverse')">反选</button>
<script>
function op_checkbox(element_name, type) {
var element_list = document.getElementsByName(element_name);
if (null != element_list) {
for (var i = 0; i < element_list.length; i++) {
if (element_list[i].checked == true) {
// 非全选
if (type != 'check_all') {
element_list[i].checked = false;
}
} else {
// 非全不选
if (type != 'check_out_all') {
element_list[i].checked = true;
}
}
}
}
}
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>事件句柄</title>
</head>
<body>
<input type="button" id="input-1" value="点击[1]">
<input type="button" id="input-2" value="点击[2]">
<script>
function func_1() {
alert('Hello, world!');
}
function func_2() {
input_1.removeEventListener('click', func_1);
}
var input_1 = document.getElementById('input-1');
var input_2 = document.getElementById('input-2');
input_1.addEventListener('click', func_1);
input_2.addEventListener('click', func_2);
</script>
</body>
</html>
JSON
JSON.parse
var obj = JSON.parse('{"a": "Hello", "b": "World"}');
console.log(obj);
{ a: 'Hello', b: 'World' }
JSON.stringify
var json = JSON.stringify({ a: 'Hello', b: 'World' });
console.log(json);
{"a":"Hello","b":"World"}
document
document.write()
-
document.write()
方法将文本字符串写入由document.open()
打开的文档流 -
只能在
HTML
输出流中使用document.write()
,如果在文档加载后使用(如调用函数),则会覆盖整个文档
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>document.write</title>
</head>
<body>
<script>
document.write('<h1>标题</h1>');
</script>
</body>
</html>
Object
Object.freeze()
Object.freeze()
方法用于冻结对象
const obj = {
a: 0
}
Object.freeze(obj);
obj.a = 1;
console.log(obj.a);
0