with、eval的使用
with语句的使用
with语句 扩展一个语句的作用域链。
<script>
var obj = {
message : "Hello World"
}
with (obj) {
console.log(message)
}
</script>
◼ 不建议使用with语句,因为它可能是混淆错误和兼容性问题的根源。
eval函数
◼ 内建函数eval 允许执行一个代码字符串。
eval是一个特殊的函数,它可以将传入的字符串当做JavaScript代码来运行;
eval会将最后一句执行语句的结果,作为返回值;
var codeString = `var name = "hdc";console.log(name)`
eval(codeString)//hdc
◼ 不建议在开发中使用eval:
eval代码的可读性非常的差(代码的可读性是高质量代码的重要原则);
eval是一个字符串,那么有可能在执行的过程中被刻意篡改,那么可能会造成被攻击的风险;
eval的执行必须经过JavaScript解释器,不能被JavaScript引擎优化;