使用 js 的一些注意事项以及es6的补救

1. 变量提升

函数声明和变量声明会被解析器提升到方法体的顶部

// 变量声明-提升
x = 5
console.log(x)
var  x
// 等同于
var x
x = 5
console.log(x)
// 函数声明-提升
fn() // 先调用-后声明
function fn () {}
// 等同于
function fn () {}
fn() // 先声明-后调用
// 补充-函数表达式变量不会提升
fn()
var fn = function () {}
// 报错 fn is not a function
// 引入es6 ( let 声明变量)
let x
x = 5
console.log(x)
//  let 声明变量-不提升(就是为了防止变量提升)
console.log(n) let n = 9
// 报错

2. function与class的对比

// 先来絮叨絮叨function
// 2.1 function 与 Function
// function 是一个关键字可以声明一个函数对象:
function test () {}
// Function是一个构造器,function是Function实例化的一个对象,包含[[call]][[code]]等等属性,
// 它的每个参数都是字符串形式
function callAnotherFunc(fnFunction, vArgument) {
	fnFunction(vArgument);
}
var doAdd = new Function("iNum", "alert(iNum + 10)");
callAnotherFunc(doAdd, 10); // 输出 "20"
// callAnotherFunc instanceof Function
// 2.2 function 与 class
// class事实上是一种特殊的function,es6引入的新语法,class语法也有两种形式:一种是声明,一种是表达式
class A {} // 声明
let A = class  {} // 表达式

3. setTimeout()和setInterval()

3.1 setTimeout(): 在指定的毫秒数后调用函数或计算表达式。(执行一次)

let time1 = setTimeout(function() {console.log('1111')}, 3000)
// 通过clearTimeout(time1)关闭定时器

3.2 setInterval() : 按照指定的周期(以毫秒计)来调用函数或计算表达式。(会不停的调用函数)

let time2 = setInterval(function() {console.log('2222')}, 3000)
// 通过window.clearInterval(time2) 关闭定时器
发布了22 篇原创文章 · 获赞 2 · 访问量 2878

猜你喜欢

转载自blog.csdn.net/gaodda/article/details/93163521
今日推荐