先看几种常用的定义方式:
function func1([参数]){
/*函数体*/
}
var func2=function([参数]){
/*函数体*/
}
var func3=function func4([参数]){
/*函数体*/
}
var func5=new Function()
上述第一种方式是最常用的方式,不用多说。
第二种是将一匿名函数赋给一个变量,调用方法:func2([函数])
第三种是将func4赋给变量func3,调用方法:func3([函数])或func4([函数])
第四种是声明func5为一个对象。
再看看它们的区别:
function func(){
//函数体
}
//等价于
var func=function(){
//函数体
}
但同样是定义函数,在用法上有一定的区别。
<script>
//这样是正确的
func(1)
function func(a)
{
alert(a)
}
</script>
<script>
//这样是错误的,会提示func未定义,主要是在调用func之前没有定义
func(1)
var func = function(a)
{
alert(a)
}
//这样是正确的,在调用func之前有定义
var func = function(a)
{
alert(a)
}
func(1)
</script>
用同样的方法可以去理解第三种定义方式。
第四种定义方式也是需要声明对象后才可以引用。
JavaScript(简称“JS”) 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。虽然它是作为开发Web页面的脚本语言而出名的,但是它也被用到了很多非浏览器环境中,JavaScript 基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式和声明式(如函数式编程)风格。 [1]
JavaScript在1995年由Netscape公司的Brendan Eich,在网景导航者浏览器上首次设计实现而成。因为Netscape与Sun合作,Netscape管理层希望它外观看起来像Java,因此取名为JavaScript。但实际上它的语法风格与Self及Scheme较为接近。 [2]
JavaScript的标准是ECMAScript 。截至 2012 年,所有浏览器都完整的支持ECMAScript 5.1,旧版本的浏览器至少支持ECMAScript 3 标准。2015年6月17日,ECMA国际组织发布了ECMAScript 的第六版,该版本正式名称为 ECMAScript 2015,但通常被称为ECMAScript 6 或者ES6。 [1]
推荐百度百科:javascript
以下答案应该是比较全的,为个人总结原创。规则:js中,变量名必须以ASCII字符或下划线(_)开头,第1个字母不能是数字,但其后可以是数字或其他字母。不能与JavaScript中的保留字相同。 规范:(1)从变量名上应该可以看出变量的作用。(2) 如果变量名是一个单独的单词,如“date”,那么该变量名应该全部使用小写;如果变量名是两个或多个单词组成,那么从第二个单词开始,后面的所有单词的首字母都必须大写,如“theDate”、“otherDate”等。 当然,以上规范只是一个“约定”而已,可以遵守,也可以不遵守。注意:JavaScript与其他程序语言之间有些区别,其他程序语言大多需要为变量指定一个数据类型,例如将一个变量指定为整数型,那么这个变量就只能存储整数型数据,不可以存储浮点型或其他类型的数据。而JavaScript中的变量是没有类型(notype)的,这就意味着在JavaScript中的变量可以是任何一种数据类型。例如先将一个数字型数据赋给一个变量,在程序运行过程中,再将一个布尔型数据赋给同一个变量,这在JavaScript中是合法的。 在JavaScript中,使用一个变量之前,必须要先定义该变量。只有在定义了一个变量之后,系统才会准备一个内存空间来存储这个变量的值,而程序员可以通过变量名来存储或读取变量的值。在JavaScript中可以使用关键字var来定义一个变量。一个var关键字也可以同时定义多个变量,变量之间用逗号隔开。在定义了变量之后,如果没有为变量赋值,那么该变量的初始值为undefined。JavaScript支持在定义变量的同时为变量指定初始值。变量可以根据其有效范围分为全局变量与局部变量两种。其中全局(global)变量从定义开始,到整个JavaScript代码结束为止,都可以使用;而局部(local)变量只有在函数内部里才生效。这里值得注意的是,在函数体内使用var关键字定义的变量为局部变量,如果要在函数体内定义全局变量,则不能使用var关键字,只需要直接给变量赋值即可。JavaScript中局部变量的有效范围与其他语言中局部变量的有效范围不同,JavaScript中只要在函数体内定义了局部变量,该局部变量就会在整个函数体内有效,而不是从定义局部变量的那行代码开始起效。