JavaScript
1,概念:
(1)跟java没有关系的。他是一个浏览器脚本语言。创造者是Brendan Eich。最初的名字是Mocha,但是只使用了两个月。
(2)跟java是很好的搭档。JavaScript可以控制浏览器的行为和内容,但不能绘图和执行连接。但是Java可以,并可以多线程。
(3)认为JavaScript是依赖于浏览器的脚本语言,这个是误解。他也适合很多和Web无关的应用程序。
(4)JavaScript是一种基于对象的语言,且是面向对象的语言(基于原型的面向对象)。
缺点:错误的使用JavaScript代码,可能浪费用户大量的网络带宽,内存和CPU资源,提升了对客户端配置的要求,降低了系统的稳定性,甚至导致许多本来可以避免的安全问题。
应用:浏览器,服务器端,桌面程序,其他应用环境。
2.使用:
(1)<noscript></noscript>是一种防御性编码,若用户浏览器不支持JavaScript或是设置了过高的安全级别,就会显示这里的提示信息,避免了用户在不知请下停止运行或得到了错误的结果。
(2)<script></script>是用来在html中嵌入JavaScript代码的。
(3)装载地:页面文档的任何结点,如head之内,head和body之间,body之内,整个html文件的开头和末尾。
正确的用法是:按照独立功能的划分将一组相互依赖的或是功能相近的模块写在一个<script>块内,将功能相对独立彼此孤立的代码分开写入多个<script>块。
一组通用的功能,最好是写入独立的文件,有必要的就封装在一个对象中。尽量不要让脚步出现在结束标记</body>之前(因为浏览器很难释放消耗的内存)。
(4)什么时候执行:直接嵌入在Web页面上的会默认在页面装载期间执行,注册到事件上的事件被触发时才执行。
(5)调试:IE浏览器的,默认是不允许调试的,需要打开调试:
一般来说,调试有两种:(1)开发人员设置断点手动调试;(2)当程序抛出异常时系统自动切入调试进程。IE同时支持这两种模式。
(6)异常:JavaScript核心内置异常对象有Error,EvalError(表达式计算错误),RangeError(数值/数组下标越界),SyntaxError(是在语法解析时发生的,很难被catch),TypeError(数据类型错误)。
(7)大小写问题:JavaScript大小写敏感,JavaScript对于DOM事件类型名采用的是小写;html的不区分大小写。
(8)最长行匹配原则:若单行语素构成一个完整的句子,那么不管末尾是否有分好,都作为一个独立的句子执行,否则匹配多行,直到这些共同构成完整句子或出现分好为止。
(9)变量作用域:从当前域开始,递归向上查找各级嵌套的父域,最后到达全局。
(10)运算:void运算符:舍弃运算数的值。
(11)数据类型:
A,数值:都是浮点型;B,字符串:表示文本数据,是文本数据的最小单位单,引号或是双引号;C,布尔类型:true,false;D,数组:有序集合,下标从0开始(注意:与java不同,每个元素类型可能不同);E.对象:
B.比较:>,=,<等。跟java不同,字符串虽然也是使用引用方式存储的,但是他的行为更接近值方式,所以字符串的是可以使用比较的,比较的是他们的内容,而非引用地址。
(12)函数:命名方式和匿名方式:
function f2(){alert()};//命名方式,声明式函数
var f1=function(){alert()};//匿名方式,引用式函数
区别:声明式的代码先于函数执行代码被解析器解析,引用式函数在函数运行中进行动态解析的。如下,函数,执行结果。(声明式的会覆盖前面的)
一个函数被作为构造函数还是普通函数的唯一区别是是否用new运算符。
(13)集合:
a。join()可以把一个数组的所有元素都转换为字符串,然后将他们连接起来。b。reverse()将数组元素颠倒。
(14)客户端持久化数据存储:cookie,userData。
(15)数据交互:同步/异步
同步:代码按照某种特定的情况执行;异步:等待某个特定条件的触发
(16)定时器:setTimeout(),clearTimeout();setInterval(),clearInterval()
(17)Ajax:Asynchronism JavaScript XML 用JavaScripst控制的,以xml异步请求为主要手段的数据交互模式。