1、浏览器控制台运行
JavaScript不同于java语言或者c语言,需要环境、需要编译再运行,js在被制造出来时,就是为浏览器而生,可以直接在浏览器里运行,这里以谷歌浏览器为例,鼠标右键检查或者快捷键F12即可看到控制台可以理解为操作系统里的命令行模式
在这里就可以直接输入我们想输入的js代码,回车即可查看代码执行结果
在浏览器输入js代码的好处显而易见:方便,打开浏览器就能输代码查看执行结果,我平常也多用浏览器控制台学学原生js的原理或者看看正则是不是匹配,因为浏览器控制台的缺点太多了:操作不便,没法文件操作只能命令行,找错困难,大多数时候的js是有依赖的,控制台不方便整依赖,所以,一般控制台也就执行执行简单原生的js
2、写在HTML里运行
实际上,我们肯定不想用命令行的方式,当然是用一个顺手的IDE写代码。
这种方式,就是我大学时候,老师们教的传统方式了。
学HTML的时候,会教到标签,有一个标签不同于别的花里胡哨的标签,这个标签很牛,叫做<script>脚本标签,用来嵌入或者引用可执行脚本,这里解释一下嵌入和引用。嵌入呢,就是把脚本写在标签里边儿,引用呢,就是把脚本写好,然后用标签引入这个脚本的路径
这是主流的写法也是主流的教法,嵌入的写法就是这样:
引用的写法是这样:
查看执行结果的话,点击IDE边上的浏览器图标或者右键run这个html页面,等浏览器弹出来,右键检查就能看到控制台输出的值了
3、直接运行js
实际上上面第二种方法已经很靠谱很普及了,可还是用起来不舒服,每回都要写一个HTML,有的甚至还要再写一个js,那能不能像运行html一样,直接右键运行js呢?
当然是可以的!用node!以下是我花了一个小时才整成的历程!
1、由于我是新的电脑,我装了个nodejs,安装包安装完后,直接命令行执行node命令,即可以直接运行js代码
这样方式还是很蠢,和浏览器没什么区别
2、我用IDE些好的js文件,然后用node单独执行
看上去是好一点了,可以单独执行文件了,但是这样还是很蠢,每回打开cmd还要找到js的路径
3、插件(我这里用的IDEA)
其实不要被“函数表达式”的函数两字束缚了,其实就是“表达式”,这样一来就会好理解了。在表达式的前面加个逻辑运算符(比如!取反)或数学运算符(比如+),js就会认为你是要获取表达式的值,这样它就会去运行这个表达式,这样函数就会被执行了。比如说有下面这个函数声明:
function abc(){return true}
那么执行 !abc() 时js就会先去调用abc函数,然后再把返回值取反,这个好理解吧?
而现在把abc直接替换为匿名函数:
!function(){return true}()
js也一样会把!后面的部分当作一个表达式去运行,然后把取回的值进行取反,这个过程中匿名函数就会自动运行了。
其实 (function(){})()和 (function(){}()) 能够自执行的原理也是一样的,我加黑的那对括号其实也是运算符(就好比小学数学中的 (2+3)×4 中的括号),这样js就会把括号里的部分当作表达式来处理了。
所以,说到底函数的自执行其实并不是js的有意为之,而是一种无心插柳的行为,说是旁门左道也不为过,但它确实可以帮我们实现一些特殊的要求,所以就慢慢变成一种正经用法了。
<script>function winInit()
{
alert("Hello,World!")
}
</script>
<body onload='winInit()'>
</bod>
如果是静态本地浏览,IE默认是阻止,如果你把他们放到网络上一般就不会了,除非用户自己选择阻止Javascript,就是这样了。