持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第28天,点击查看活动详情
生命不息,学习不止
题外话
人类优于其他物种的一个重要方面是人类学会了思考,所以说在人类的进化道路上,思考是举足轻重的,为了防止大家小脑袋瓜锈住,我打算每天出一道题让大家好好的思考一下。
每日一题:大家都知道我长得帅啊,那种人见人爱的帅,那么,如果我和我自己谈恋爱是算同性恋呢还是算自恋呢?
废话不多说,上货!
正文
with语句(不推荐使用)
with可以形成自己的作用域
let message = "Hello World"
function foo() {
function bar() {
console.log(message)
}
}
//Hello World
上面这段代码会按照函数bar -> 函数foo -> global 作用域查找message这个变量。
let message = "Hello World"
let obj = {name: "obj", message: "obj message"}
function foo() {
function bar() {
with(obj){
console.log(message)
}
}
}
// obj message
这里查找的作用域链就变成了with的参数obj -> bar -> 函数foo -> global 作用域查找message这个变量。
eval函数(不建议使用)
eval是一个特殊的函数,它可以将传入的字符串当作javaScript代码来运行
let jsString = 'console.log("eval函数");console.log("打印")'
eval(jsString)
//eval函数
//打印
- 不建议再开发中使用
eval:eval代码的可读性非常差eval是一个字符串,那么有可能在执行的过程中被刻意篡改,那么可能会造成被攻击的风险。eval的执行必须经过js解释器,不能被js引擎优化。
严格模式
- 禁止意外创建全局变量
- 不允许函数有相同的参数名称
- 静默错误
true.name = "abc" - 不允许使用原先的八进制格式
- 不允许使用
with eval函数不会向上引用变量- 严格模式下
this的指向- 自执行函数(默认绑定)会指向
undefined
- 自执行函数(默认绑定)会指向
下一篇我们继续讲达梦数据库触发器以及触发器的使用。
大家看完发现有什么错误,写在下面吧!跟我黑虎阿福比划比划!