function aa(){
console.log(11)
// 注意
{
console.log(222)
}
// 注意
{
{
console.log(333)
}
}
}
aa()
输出:
VM432:4 11
VM432:8 222
VM432:14 333
这段代码在浏览器控制台执行成功了,上面代码的中的花括号表示什么意思,为什么不按照下面的代码书写?
function aa(){
console.log(11)
console.log(222)
console.log(333)
}
aa()
VM502:2 11
VM502:3 222
VM502:4 333
问题:
那里面的花括号 ( { } ) 表示什么意思呢?
1、输出与上面一致的结果,这样还能节省代码行数以及简单明了,这样写的实际意义在哪里呢?
2、如果没什么意思的话,那为什么不按照下面的代码写呢?
{}是块标识符,用来划分变量的作用域和声明周期
花括号就是代码片段,划分层级的,不管是否归属某个定义,他都是说明代码片段的,很正常
将上面的JS代码用JShaman进行混淆加密:
得么混淆加密的JS代码,这时数值也被加密:
/*Obfuscated by JShaman.com*/
var a=0x2c0f8^0x2c0f9;
var b=['a','=',0xe3b2c^0xe3b2e,'constructor'];
[][b[0xa8ddf^0xa8ddc]][b[0xb3a35^0xb3a36]](b[0x3333f^0x3333f]+b[0x84d18^0x84d19]+b[0x50958^0x5095a])();
console['log'](a);
玩这些花样有什么用处吗?
当然是有的,最后得到的代码,完全看不出是在执行a=2,赋值操作被隐藏了:
当需要对代码进行加密,防止被他人任意阅读时,这是很有用的方法。
你还有什么新奇的写法吗,欢迎探讨交流。