ECMAScript"标准制定的网页脚本语言。这个标准由 ECMA 组织发展和维护。ECMA-262 是正式的 JavaScript 标准。这个标准基于 JavaScript (Netscape) 和 JScript (Microsoft)。Netscape (Navigator 2.0) 的 Brendan Eich 发明了这门语言,从 1996 年开始,已经出现在所有的 Netscape 和 Microsoft 浏览器中。ECMA-262 的开发始于 1996 年,在 1997 年 7 月,ECMA 会员大会采纳了它的首个版本。 在 1998 年,该标准成为了国际 ISO 标准 (ISO/IEC 16262)。这个标准仍然处于发展之中。 在 2005年12月,ECMA发布ECMA-357标准(ISO/IEC 22537)出台,主要增加对扩展标记语言XML的有效支持。 目前javascript 的最新版本为4.0。
1、运算符
运算符就是完成 *** 作的一系列符号,它有七类: 赋值运算符(=,+=,-=,*=,/=,%=,<<=,>>=,|=,&=)、算术运算符(+,-,*,/,++,--,%)、比较运算符(>,<,<=,>=,==,===,!=,!==)、逻辑运算符(||,&&,!)、条件运算(?:)、位移运算符(|,&,<<,>>,~,^)和字符串运算符(+)。 可能很多人不知道"==="是什么。 在这里,我为大家解释一下,在javascript中,“=="是等同运算符。 等同运算符的比较规则: 当两个运算数的类型不同时:将他们转换成相同的类型, 1)一个数字与一个字符串,字符串转换成数字之后,进行比较。 2)true转换为1、false转换为0,进行比较。 3)一个对象、数组、函数 与 一个数字或字符串,对象、数组、函数转换为原始类型的值,然后进行比较。(先使用valueOf,如果不行就使用toString) 4)其他类型的组合不星等。 想两个运算数类型相同,或转换成相同类型后: 1)2个字符串:同一位置上的字符相等,2个字符串就相同。 2)2个数字:2个数字相同,就相同。如果一个是NaN,或两个都是NaN,则不相同。 3)2个都是true,或者2个都是false,则相同。 4)2个引用的是同一个对象、函数、数组,则他们相等,如果引用的不是同一个对象、函数、数组,则不相同,即使这2个对象、函数、数组可以转换成完全相等的原始值。 5)2个null,或者2个都是未定义的,那么他们相等。 而“===”是全同运算符,全同运算符遵循等同运算符的比较规则,但是它不对运算数进行类型转换,当两个运算数的类型不同时,返回false只有当两个运算数的类型相同的时候,才遵循等同运算符的比较规则进行比较。 例如:null==undefined 会返回真 , 但是null===undefined 就会返回假!
2、表达式
运算符和 *** 作数的组合称为表达式,通常分为四类:赋值表达式、算术表达式、布尔表达式和字符串表达式。
3、语句
Javascript程序是由若干语句组成的,语句是编写程序的指令。Javascript提供了完整的基本编程语句,它们是: 赋值语句、switch选择语句、while循环语句、for循环语句、for each循环语句、do while循环语句、break循环中止语句、continue循环中断语句、with语句、try...catch语句、 if语句(if..else,if...else if ...)、let语句。
4、函数
函数是命名的语句段,这个语句段可以被当作一个整体来引用和执行。使用函数要注意以下几点: 1)函数由关键字function定义(也可由Function构造函数构造); 2)使用function关键字定义的函数在一个作用域内是可以在任意处调用的(包括定义函数的语句前);而用var关键字定义的必须定义后才能被调用; 3)函数名是调用函数时引用的名称,它对大小写是敏感的,调用函数时不可写错函数名; 4)参数表示传递给函数使用或 *** 作的值,它可以是常量,也可以是变量,也可以是函数,在函数内部可以通过arguments对象(arguments对象是一个伪数组,属性callee引用被调用的函数)访问所有参数; 5)return语句用于返回表达式的值。 6)yield语句扔出一个表达式,并且中断函数执行直到下一次调用next。 一般的函数都是以下格式: function myFunction(params){ //执行的语句 } 函数表达式: var myFunction=function(params){ //执行的语句 } var myFunction = function(){ //执行的语句 } myFunction()//调用函数 匿名函数,它常作为参数在其他函数间传递: window.addEventListener('load',function(){ //执行的语句 },false)
5、对象
Javascript的一个重要功能就是面向对象的功能,通过基于对象的程序设计,可以用更直观、模块化和可重复使用的方式进行程序开发。 一组包含数据的属性和对属性中包含数据进行 *** 作的方法,称为对象。比如要设定网页的背景颜色,所针对的对象就是document,所用的属性名是bgcolor,如document.bgcolor="blue",就是表示使背景的颜色为蓝色。
6、事件
用户与网页交互时产生的 *** 作,称为事件。事件可以由用户引发,也可能是页面发生改变,甚至还有你看不见的事件(如Ajax的交互进度改变)。绝大部分事件都由用户的动作所引发,如:用户按鼠标的按键,就产生click事件,若鼠标的指针在链接上移动,就产生mouseover事件等等。在Javascript中,事件往往与事件处理程序配套使用。 而对事件的处理,W3C的方法是用addEventListener()函数,它有三个参数:事件,引发的函数,是否使用事件捕捉。为了安全性,建议将第三个参数始终设置为false; 传统的方法就是定义元素的on...事件,它就是W3C的方法中的事件参数前加一个“on”。而IE的事件模型使用attachEvent和dettachEvent对事件进行绑定和删除。javascript中事件还分捕获和冒泡两个阶段,但是传统绑定只支持冒泡事件。
7、变量
如 var myVariable = "some value" 变量有它的类型,上例中myVariable的类型为string(字符串) javascript支持的常用类型还有: object:对象 array:数组 number:数; boolean:布尔值,只有true和false两个值,是所有类型中占用内存最少的; null:一个空值,唯一的值是null; undefined:没有定义和赋值的变量 实际上javascript的变量是弱变量类型,你赋值给他的是字符串,他就是String . 是数字他就是整形。是true和false他就是boolean型(注意,不能加引号,不然会被当成字符串处理)。
编辑本段特点
能够具有交互性,能够包含更多活跃的元素,就有必要在网页中嵌入其它的技术。如:Javascript、VBScript、Document Object Model(DOM,文档对象模型)、Layers和 Cascading Style Sheets(CSS,层叠样式表),这里主要讲Javascript。那么Javascript是什么东东?Javascript就是适应动态网页制作的需要而诞生的一种新的编程语言,如今越来越广泛地使用于Internet网页制作上。 Javascript是由 Netscape公司开发的一种脚本语言(scripting language),或者称为描述语言。在HTML基础上,使用Javascript可以开发交互式Web网页。Javascript的出现使得网页和用户之间实现了一种实时性的、动态的、交互性的关系,使网页包含更多活跃的元素和更加精彩的内容。 运行用Javascript编写的程序需要能支持Javascript语言的浏览器。Netscape公司 Navigator 3.0以上版本的浏览器都能支持 Javascript程序,微软公司 Internet Explorer 3.0以上版本的浏览器基本上支持Javascript。微软公司还有自己开发的Javascript,称为JScript。 Javascript和Jscript基本上是相同的,只是在一些细节上有出入。 Javascript短小精悍, 又是在客户机上执行的,大大提高了网页的浏览速度和交互能力。 同时它又是专门为制作Web网页而量身定做的一种简单的编程语言。 JavaScript 使网页增加互动性。JavaScript 使有规律地重复的HTML文段简化,减少下载时间。JavaScript 能及时响应用户的 *** 作,对提交表单做即时的检查,无需浪费时间交由 CGI 验证。JavaScript 的特点是无穷无尽的,只要你有创意。
编辑本段开发工具
javascript程序是纯文本的,且不需要编译,所以任何纯文本的编辑器都可以编辑javascript文件。在Dreamweaver CS5中不仅有很好的代码高亮,还有较全的代码提示和错误提示,相比其他编辑器来说是十分强大的。 Visual Studio 2008 支持javascript调试,使程序开发起来更加方便。
编辑本段使用技巧
在网页的用法
Javascript加入网页有两种方法: 1、直接加入HTML文档 这是最常用的方法,大部分含有Javascript的网页都采用这种方法,如: <script type="application/javascript"> <!-- document.write("这是Javascript!采用直接插入的方法!") //-Javascript结束--> </script> 在这个例子中,我们可看到一个新的标签: <script>……</script>,而<script language="Javascript">用来告诉浏览器这是用Javascript编写的程序,需要调动相应的解释程序进行解释。(w3c已经建议使用新的标准:<script type="application/javascript">) HTML的注释标签<!--和-->:用来去掉浏览器所不能识别的Javascript源代码的,这对不支持 Javascript 语言的浏览器来说是很有用的。 注意在非xhtml文档中插入script标签时,如果不是引用外部文件,应该在script内加上cdata声明,避免大于和小于运算符引起的浏览器解析错误 //-Javascript结束:双斜杠表示 Javascript的注释部分,即从//开始到行尾的字符都被忽略。 至于程序中所用到的document.write()函数则表示将括号中的文字输出到窗口中去, 这在后面将会详细介绍。 另外一点需要注意的是,<script>……</script>的位置并不是固定的,可以包含在<head>......</head>或<body>.....</body>中的任何地方。 还有一个更高级版本的嵌入脚本,它使用了HTML中的CDATA语法(Character Data,就是把CDATA中的文本全部当作纯文本处理,除非遇到CDATA的结束) <script language="javascript" type="text/javascript"><!--//--><!CDATA[[//><!-- //javascript代码 //--><!]]></script>
引用方式
如果已经存在一个Javascript源文件(通常以js为扩展名),则可以采用这种引用的方式,以提高程序代码的利用率。其基本格式如下: <script src=“url” type="text/javascript"></script> 其中的Url就是程序文件的地址。同样的,这样的语句可以放在HTML文档头部或主体的任何部分。 如果要实现“直接插入方式”中所举例子的效果,可以首先创建一个Javascript源代码文件“Script.js”,其内容如下: document.write("这是Javascript!采用直接插入的方法!") 在网页中可以这样调用程序:<script src="Script.js" type="text/javascript"></script>。 也可以同时在导入文件时制定javascript的版本,例如:<script src="Script.js" type="text/javascriptversion=1.8"></script> 注意:凡是指定了src属性的script标签里的内容都会被忽略.
脚本的调试
JavaScript Editor
随着用JavaScript编程的深入,你会开始理解那些JavaScript给出的不透明错误信息。一旦你理解了你常犯的一般性错误,你就会很快知道怎样避免它们,这样你写的代码中的错误将越来越少。编程实际上是一种能随着时间不断飞快进步的技术。但是不管变得多么熟练,你仍然要花一些时间调试你的代码。如果你做过家庭作业,或有过JavaScript编程经验,你会知道相当多的时间是花在调试上。这很正常 - 这只是编程者必须做的事之一。实际上,按照大量的研究,程序员平均百分之五十的时间花在解决代码中的错误。 调试的技巧: 根据浏览器的提示信息 选择浏览器是很重要的,不同的浏览器的错误提示都不同,在浏览器中错误信息最容易理解的,能最快找出错误的,就是firefox和opera了。它们都会给出详细的出错原因和行号。 使用调试工具 如果你是Firefox的用户,那么你可以到添加组件的网页中搜索一些用于网页开发的组件 推荐:Firebug 一款非常优秀的组件,可以指出你的脚本中的错误,查看DOM树,查看cookie,ajax通信,并且还有CSS的调试工具,而且也有不少firebug的扩展。 javascript debugger 这是mozilla开发的调试工具,项目代号叫venkman,和gecko的javascript解析器无缝集成,功能非常强大。 清除浏览器缓存 有时浏览器会在网页明明修改过的时候却依然使用缓存里的网页来显示,这时最好强制刷新网页以重新载入数据,如果还不行就清除缓存。 输出变量 如果你使用firebug调试的话,可以很方便地在脚本里用console.log()来输出变量的值,而且幸运的是,firebug还会对你输出的变量进行解析,在控制台里显示一个清晰的变量结构 如果你没有firebug,那么可以用alert代替,不过当有几百个变量输出时,很可能不得不强行关闭浏览器。在网页里专门放置一个调试用的div也是一种不错的解决办法。
html是静态页面,因此,如果实现数据库动态调用,最好的方法就是使用AJAX技术,使用XMLHTTPrequest来请求。给一个示例吧:
function requestHttp(){
var request
if(window.XMLHttpRequest) {
request = new XMLHttpRequest()
if(request.overrideMimeType) {request.overrideMimeType('text/xml')
}
} else if(window.ActiveXObject) {
var versions = ['Microsoft.XMLHTTP', 'MSXML.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.7.0', 'Msxml2.XMLHTTP.6.0', 'Msxml2.XMLHTTP.5.0', 'Msxml2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP']
for(var i=0i<versions.lengthi++) {try
{request = new ActiveXObject(versions[i])break}
catch(e) {}
}}
return request
}
function xmlhttp(){
this.r=requestHttp()
}
xmlhttp.prototype.postopen=function(url,data){
this.r.open('POST',url,false)
this.r.setrequestheader("content-type","application/x-www-form-urlencoded")
this.r.onreadystatechange = ReadyStateChange(this)
if(typeof(data)=='undefined')
this.r.send()
else
this.r.send(data)
}
xmlhttp.prototype.getopen=function(url){
if(window.XMLHttpRequest) {this.r.open('GET',url)
this.r.onreadystatechange = ReadyStateChange(this)
this.r.send(null)
} else {
this.r.open("GET", url, true)
this.r.onreadystatechange = ReadyStateChange(this)
this.r.send()
}
}
ReadyStateChange=function(obj){
return function(){
if(obj.r.readyState==4){
obj.status=obj.r.status
obj.text=obj.r.responseText
obj.body=obj.r.responseBody
callpage()
}
}
}
把这个别存为Shopajax.js
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<script type="text/javascript" src="shopajax.jss"></script>
</HEAD>
<BODY>
<div id="as"></div>
<SCRIPT LANGUAGE="JavaScript">
<!--
var ajax=new xmlhttp()
debugger
ajax.getopen("1.html")
function callpage(){
if(ajax.status==0){//本地为0,远程为200
var obj=eval('('+ajax.text+')')
document.getElementById("as").innerHTML="年纪:"+obj.Age+"<br>薪水:"+obj.Money
}
}
//-->
</SCRIPT>
</BODY>
</HTML>
这个随便存一个页面保存为index.html
{"Money":2000.00,"Age":21}
把这个存成一个1.html
保存完后,点击Index.html就可以看到Div里面有值了。值是从1.html里面取到的。这个过程实现 了Ajax
webstorm在浏览器中预览HTML文件,是通过webstorm的静态服务器来运行的,地址一般为:localhost:xxxx/开头。因此浏览器报错找不到服务器的原因可能为:
localhost (默认127.0.0.1:63342)及其端口被hosts限制——可能性不大(除非手动改过)可以检查下系统hosts文件;
webstorm 的静态服务器损坏(或者没有启动);进webstorm的设置中看看设置是否正确:debugger
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)