JS是一门高级的、解释型的编程语言。它支持面向对象程序设计,指令式变成以及函数式编程。它提供语法来操控数组、文本、日期及正则表达式等,不支持I/O,比如网络、存储和图形等,但这些都可以由它的宿主环境提供支持。它通过ECMAscript实现了语言的标准化,它被世界主流浏览器(Chrome,IE,Firefox,Safri,Opera)支持。
javascript语言在语法结构上与C语言有很多相似,如if语句,switch语句,while循环,do-while循环。
随着最新的HTML5和CSS3语言标准的推行,它还可以用于游戏、桌面、和移动应用程序的开发和在服务器端网络环境运行,如Node.js
1995年,布莱登.艾克写出了JS原型。最初命名为Mocha,最终重命名为Javascript,但是在IE统治浏览器的很长一段时间里,JS都没有得到如java一样的快速发展,直到IE逐渐失去市场份额。
javascript语言的特点:
- 不同于服务器端脚本语言,PHP和ASP,JavaScript主要被作为客户端脚本语言在用户的浏览器上运行,不需要服务器的支持。所以在早期程序员比较青睐于JavaScript以减少对服务器的负担,而与此同时也带来另一个问题:安全性。而随着服务器变得强大,现在的程序员更喜欢运行于服务端的脚本以保证安全,但JavaScript仍然以其跨平台、容易上手等优势大行其道。同时,有些特殊功能(如AJAX)必须依赖JavaScript在客户端进行支持。
- 指令话和结构化。JavaScript从支持许多C语言的结构化编程语法(例如if条件语句、while循环、switch语句、do-while循环等)。
- 弱类型。意味着变量可以被隐式地转换为另一种类型。
二元运算符
+会把两个操作数转换为字符串,除非两个操作数都为数字类型。这是因为+也表示字符串连接操作。二元操作符-会把两个操作数转换为数字类型。一元操作符,包括+和-,都会把操作数转换为数字。 - 动态化。JS是动态类型的,其类型与值而不是与变量关联。例如变量可以为数值,随后又可被赋值为字符串
- 函数作为方法。与大多数而向对象的语言不同,在JavaScript中函数定义与方法定义没有明显的区别。唯一的区别在于调用时:当函数被作为方法调用时,函数的
this会指向调用此函数的对象。 - 在JavaScript中,函数是一等的,函数也被认为是对象。因此,函数也可以有属性与方法,例如call()和bind等。嵌套函数指定义于其它函数内部的函数,在外部函数被调用时,嵌套函数会被创建。另外,嵌套函数是一个闭包。"闭包,在外部函数的作用域(包括常量,局部变量和参数)都成为内部函数状态的一部分,甚至在外部函数执行完毕后,内部函数的状态依然保留。同时也支持匿名函数。
- 异步。JavaScript一般来说是单线程的。为了并发地处理事件,JavaScript程序输入/输出是使用事件和回调函数执行的。例如,这意味着JavaScript可以在等待数据库查询返回信息时处理鼠标单击。ECMAScript ES6引入了Promise用于优雅地处理异步事件,其可以使得传统的基于回调的异步代码更加清晰与简单。
- JavaScript中函数的参数长度是可变的,在函数内部可以通过arguments对象访问这些参数