当前位置:
首页 > temp > JavaScript教程 >
-
JavaScript 笔记 1
JavaScript 笔记 1
参考书籍:JavaScript权威指南、JavaScript高级程序设计
变量和赋值#
变量可以保存任何类型的数据。
var
在所有版本中均可使用,const
和let
只能在ES6及之后的版本可用
var声明#
-
可以反复多次声明同一个变量
-
定义变量并赋予初值之后,可以改变保存的值,也可也改变值的类型
var tcher = "理松";
tcher = 438;
var tcher = "理松38";
var tcher = 9060;
声明的作用域#
被包含在函数内部时用var
声明会成为其局部变量,在函数退出时将被;
去掉var
则会成为全局变量,但极其不推荐这样写,在严格模式下可能导致抛出ReferenceError
要定义多个变量时。可在一条语句中用逗号分割每个变量,可选初始化,逗号之间可以插入换行和空格缩进以便于阅读和理解:
var tcher = "理松",
age = 45,
welcome = false;
声明提升(hoist)#
使用var
声明的所有变量,变量的定义会自动提升到函数作用域顶部
以下代码不会报错:
function foo() {
console.log(age);
var age = 45;
}
foo();
运行时被等价为:
function foo() {
var age;
console.log(age);
age = 45;
}
foo();
let声明#
与var
的作用差不多,但有所区别
声明的作用域#
作用域为块作用域,是函数作用域的子集
不允许同一个块作用域中出现冗余声明,但嵌套使用相同标识符不会报错
没有声明提升#
在let
声明之前的执行瞬间被成为“暂时性死区”(temporal dead zone)
,在此阶段引用任何后面才声明的变量都会抛出ReferenceError
不能进行条件声明#
条件声明是一种反模式,它让程序更难理解。如果发现自己在使用这个模式,一定有更好的替代方式
if(typeof name === "undefined") {
let name;
}
name = "理松";
for循环中的声明#
在使用let
声明迭代变量时,JavaScript引擎会在后台为每个迭代循环声明一个新的迭代变量,这种行为适用于所有风格的for
循环,包括for-in
和for-of
for(var i = 0; i < 5; ++i) {
}
console.log(i); //5
for(let i = 0; i < 5; ++i) {
}
console.log(i); //ReferenceError
for(var i = 0; i < 5; ++i) {
setTimeout( () => console.log(i), 0)
}
//你以为的输出:0 1 2 3 4
//实际上的输出:5 5 5 5 5
for(let i = 0; i < 5; ++i) {
setTimeout( () => console.log(i), 0)
}
//实际上的输出:0 1 2 3 4
每个setTimeout引用的都是不同的变量实例,所以会输出循环执行过程中每个迭代变量的值
const声明#
用于声明常量,行为与let
基本相同,但声明时必须初始化。
-
声明后不可改变
-
不允许重复声明
-
块作用域
-
不能用于声明迭代变量
-
可以用来声明一个不会被修改的
for
循环变量
来源:https://www.cnblogs.com/gravityCat/p/15012488.html
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
关于JS定时器的整理
JS中使用Promise.all控制所有的异步请求都完
js中字符串的方法
import-local执行流程与node模块路径解析流程
检测数据类型的四种方法
js中数组的方法,32种方法
前端操作方法
数据类型
window.localStorage.setItem 和 localStorage.setIte
如何完美解决前端数字计算精度丢失与数