当前位置:文档之家› JAVASCRIPT讲义(1) 基础语法部分

JAVASCRIPT讲义(1) 基础语法部分

JAVASCRIPT讲义(1)  基础语法部分
JAVASCRIPT讲义(1)  基础语法部分

一、概念

1.1真实的名称是ECMAScript

JavaScript的正式名称是"ECMAScript"。这个标准由ECMA组织发展和维护。ECMA-262是正式的JavaScript标准。这个标准基于JavaScript(Netscape)和JScript(Microsoft)。

Netscape(Navigator2.0)的Brendan Eich发明了这门语言,从1996年开始,已经出现在所有的Netscape和Microsoft浏览器中。

ECMA-262的开发始于1996年,在1997年7月,ECMA会员大会采纳了它的首个版本。

在1998年,该标准成为了国际ISO标准(ISO/IEC16262)。

这个标准仍然处于发展之中。

1.2JavaScript能做什么?

JavaScript可以将动态的文本放入HTML页面

类似于这样的一段JavaScript声明可以将一段可变的文本放入HTML页面:document.write("

"+name+"

")

JavaScript可以对事件作出响应

可以将JavaScript设置为当某事件发生时才会被执行,例如页面载入完成或者当用户点击某个HTML元素时。

JavaScript可以读写HTML元素

JavaScript可以读取及改变HTML元素的内容。

JavaScript可被用来验证数据

在数据被提交到服务器之前,JavaScript可被用来验证这些数据。

JavaScript可被用来检测访问者的浏览器

JavaScript可被用来检测访问者的浏览器,并根据所检测到的浏览器,为这个浏览器载入相应的页面。

JavaScript可被用来创建cookies

JavaScript可被用来存储和取回位于访问者的计算机中的信息。

1.3Java和JavaScript是相同的吗?

不同!

在概念和设计方面,Java和JavaScript是两种完全不同的语言。

Java(由太阳微系统公司开发)很强大,同时也是更复杂的编程语言,就像同级别的C和C++。

从语法上说,这两种语言很相似。

鉴于已经对Java进行过系统学习,所以本文在描述Javascript的语法时重点在于与Java相比较不同的地方。

二、语法

2.1实现的格式

Javascript程序可以放在网页文件的页面中,也可以外联一个*.js文件实现。

2.3.1在网页文件中实现

例:实现文本的输出的功能

以上代码可以放在标签之间,也可以放在标签之间。区别是:

●当页面载入时,会执行位于body部分的JavaScript。

●当被调用时,位于head部分的JavaScript才会被执行。

当脚本被调用时,或者当事件被触发时,脚本就会被执行。当你把脚本放置到head部分后,就可以确保在需要使用脚本之前,它已经被载入了。

在页面载入时脚本就会被执行。当你把脚本放置于body部分后,它就会生

成页面的内容。

那些不支持JavaScript的浏览器会把脚本作为页面的内容来显示。为了防止这种情况发生,我们可以使用这样的HTML注释标签:

2.3.2外部JS实现

有时,你也许希望在若干个页面中运行JavaScript,同时不在每个页面中写相同的脚本。

为了达到这个目的,你可以将JavaScript写入一个外部文件之中。然后以.js 为后缀保存这个文件。

注意:外部文件不能包含

PS:您也许会问,为什么typeof运算符对于null值会返回"Object"。这实际上是JavaScript最初实现中的一个错误,然后被ECMAScript沿用了。现在,null被认为是对象的占位符,从而解释了这一矛盾,但从技术上来说,它仍然是原始值。

●undefined类型

undefined并不同于未定义的值。但是,typeof运算符并不真正区分这两种值。考虑下面的代码:

var oTemp;

alert(typeof oTemp);//输出"undefined"

alert(typeof oTemp2);//输出"undefined"

前面的代码对两个变量输出的都是"undefined",即使只有变量oTemp2从未被声明过。如果对oTemp2使用除typeof之外的其他运算符的话,会引起错误,因为其他运算符只能用于已声明的变量上。

例如,下面的代码将引发错误:

var oTemp;

alert(oTemp2==undefined);

当函数无明确返回值时,返回的也是值"undefined",如下所示:

function testFunc(){

}

alert(testFunc()==undefined);//输出"true"

●Null类型

另一种只有一个值的类型是Null,它只有一个专用值null,即它的字面量。

值undefined实际上是从值null派生来的,因此ECMAScript把它们定义为相等的。

alert(null==undefined);//输出"true"

尽管这两个值相等,但它们的含义不同。undefined是声明了变量但未对其初始化时赋予该变量的值,null则用于表示尚未存在的对象。如果函数或方法要返回的是对象,那么找不到该对象时,返回的通常是null。

●Boolean类型

它有两个值true和false。

●Number类型

ECMA-262中定义的最特殊的类型是Number类型。这种类型既可以表示32位的整数,还可以表示64位的浮点数。

浮点数

要定义浮点值,必须包括小数点和小数点后的一位数字(例如,用 1.0而不是1)。这被看作浮点数字面量。例如:

var fNum=5.0;

对于浮点字面量的有趣之处在于,用它进行计算前,真正存储的是字符串。

特殊的Number值

几个特殊值也被定义为Number类型。前两个是Number.MAX_VALUE 和Number.MIN_VALUE,它们定义了Number值集合的外边界。所有ECMAScript数都必须在这两个值之间。不过计算生成的数值结果可以不落在这两个值之间。

当计算生成的数大于Number.MAX_V ALUE时,它将被赋予值Number.POSITIVE_INFINITY,意味着不再有数字值。同样,生成的数值小于Number.MIN_VALUE的计算也会被赋予值Number.NEGATIVE_INFINITY,也意味着不再有数字值。如果计算返回的是无穷大值,那么生成的结果不能再用于其他计算。

事实上,有专门的值表示无穷大,(如你猜到的)即Infinity。

Number.POSITIVE_INFINITY的值为Infinity。

Number.NEGATIVE_INFINITY的值为-Infinity。

由于无穷大数可以是正数也可以是负数,所以可用一个方法判断一个数是否是有穷的(而不是单独测试每个无穷数)。可以对任何数调用isFinite()方法,以确保该数不是无穷大。例如:

var iResult=iNum*some_really_large_number;

if(isFinite(iResult)){

alert("finite");

}

else{

alert("infinite");

}

最后一个特殊值是NaN,表示非数(Not a Number)。NaN是个奇怪的特殊值。一般说来,这种情况发生在类型(String、Boolean等)转换失败时。例如,要把单词blue转换成数值就会失败,因为没有与之等价的数值。与无穷大一样,NaN也不能用于算术计算。NaN的另一个奇特之处在于,它与自身不相等,这意味着下面的代码将返回false:

alert(NaN==NaN);//输出"false"

出于这个原因,不推荐使用NaN值本身。函数isNaN()会做得相当好:alert(isNaN("blue"));//输出"true"

alert(isNaN("666"));//输出"false"

表3转义字符表

\n换行

\t制表符

\b空格

\r回车

\f换页符

\\反斜杠

\'单引号

\"双引号

\0nnn八进制代码nnn表示的字符(n是0到7中的一个八进制数字)

\xnn十六进制代码nn表示的字符(n是0到F中的一个十六进制数字)\unnnn十六进制代码nnnn表示的Unicode字符(n是0到F中的一个十六进制数字)

2.3.4数据类型转换

●转换成字符串

boolean值、数字和字符串都可以通过toString()转换成为字符串,注意,即使是字符串类型的数值也可以调用toString()。

如果是数字转字符串,无论是什么进制的数,转换后都是十进制数字的字符串。

var iNum1=10;

var iNum2=10.0;

alert(iNum1.toString());//输出"10"

alert(iNum2.toString());//输出"10"

●转换成数字

ECMAScript提供了两种把非数字的原始值转换成数字的方法,即parseInt()和parseFloat()。前者把值转换成整数,后者把值转换成浮点数。只有对String类型调用这些方法,它们才能正确运行;对其他类型返回的都是NaN。

在判断字符串是否是数字值前,parseInt()和parseFloat()都会仔细分析该字符串。

parseInt()方法首先查看位置0处的字符,判断它是否是个有效数字;如果不是,该方法将返回NaN,不再继续执行其他操作。但如果该字符是有效数字,该方法将查看位置1处的字符,进行同样的测试。这一过程将持续到发现非有效数字的字符为止,此时parseInt()将把该字符之前的字符串转换成数字。

字符串中包含的数字字面量会被正确转换为数字,比如"0xA"会被正确转换为数字10。不过,字符串"22.5"将被转换成22,因为对于整数来说,小数点是无效字符。

var iNum1=parseInt("12345red");//返回12345

var iNum1=parseInt("0xA");//返回10

var iNum1=parseInt("56.9");//返回56

var iNum1=parseInt("red");//返回NaN

还有parseInt("字符串","进制")这种方法,可以确定转换后的数字是几进制的,例如:如果十进制数包含前导0,那么最好采用基数10,这样才不会意外地得到八进制的值。

var iNum1=parseInt("010");//返回8

var iNum2=parseInt("010",8);//返回8

var iNum3=parseInt("010",10);//返回10

parseFloat()方法与parseInt()方法的处理方式相似,从位置0开始查看每个字符,直到找到第一个非有效的字符为止,然后把该字符之前的字符串转换成整数。

不过,对于这个方法来说,第一个出现的小数点是有效字符。如果有两个小数点,第二个小数点将被看作无效的。parseFloat()会把这个小数点之前的字符转换成数字。这意味着字符串"11.22.33"将被解析成11.22。

使用parseFloat()方法的另一不同之处在于,字符串必须以十进制形式表示浮点数,而不是用八进制或十六进制。该方法会忽略前导0,所以八进制数0102将被解析为102。对于十六进制数0xA,该方法将返回NaN,因为在浮点数中,x不是有效字符。

var fNum1=parseFloat("12345red");//返回12345

var fNum2=parseFloat("0xA");//返回NaN

var fNum3=parseFloat("11.2");//返回11.2

var fNum4=parseFloat("11.22.33");//返回11.22

var fNum5=parseFloat("0102");//返回102

var fNum1=parseFloat("red");//返回NaN

强制类型转换

有3种强制类型转换如下:

?Boolean(value)-把给定的值转换成Boolean型;

?Number(value)-把给定的值转换成数字(可以是整数或浮点数);

?String(value)-把给定的值转换成字符串;

用这三个函数之一转换值,将创建一个新值,存放由原始值直接转换成新的值。这会造成意想不到的后果。

弱类型语言时,强制类型转换非常有用,不过应该确保使用值的正确。

String()函数

这是最简单的,因为它可把任何值转换成字符串。

强制转换成字符串和调用toString()方法的唯一不同之处在于,对null和undefined值强制类型转换可以生成字符串而不引发错误:

var s1=String(null);//"null"

var oNull=null;

var s2=oNull.toString();//会引发错误

Boolean()函数

当要转换的值是至少有一个字符的字符串、非0数字或对象时,Boolean()函数将返回true。如果该值是空字符串、数字0、undefined或null,它将返回false。

可以用下面的代码测试Boolean型的强制类型转换:

var b1=Boolean("");//false-空字符串

var b2=Boolean("hello");//true-非空字符串

var b1=Boolean(50);//true-非零数字

var b1=Boolean(null);//false-null

var b1=Boolean(0);//false-零

var b1=Boolean(new object());//true-对象

Number()函数

Number()函数的强制类型转换与parseInt()和parseFloat()方法的处理方式相似,只是它转换的是整个值,而不是部分值。

parseInt()和parseFloat()方法只转换第一个无效字符之前的字符串,因此"1.2.3"将分别被转换为"1"和"1.2"。

用Number()进行强制类型转换,"1.2.3"将返回NaN,因为整个字符串值不能转换成数字。如果字符串值能被完整地转换,Number()将判断是调用parseInt()方法还是parseFloat()方法。

代码输出

Number(false)0

Number(true)1

Number(undefined)NaN

Number(null)0

Number("1.2") 1.2

Number("12")12

Number("1.2.3")NaN

Number(new object())NaN

Number(50)50

2.4运算符

由于Javascript是弱类型语言,在申明变量时使用var进行申明。所以变量在进行各种运算前必须转换成为特定类型,否则会报错。例如:

var var1=8;

var var2=”12”;

var var3=var1*var2;

这样的结果就不是我们期望的“8*12”的结果。所以Javascript提供了很多类型转换的函数。对于有Java编程经验人可以考虑不记忆这些函数,而是是命名变量时在变量名前加特定的标记,表示特定的数据类型,这样更轻松。例如:

自增或自减运算规则及符号与Java相同。(必须掌握)

位运算规则及符号,与Java相同。(可选择性掌握)

与、或、非元算符号及规则,与Java相同。(必须掌握)

+、-、*、/、%运算同Java。+同样可用作字符串的连接。

>、>=、<、<=、==、!=运算同Java。

注意:

(1)无论何时比较一个数字和一个字符串,ECMAScript都会把字符串转换成数字,然后按照数字顺序比较它们。

var bResult="a"<3;

alert(bResult);

你能预料到这段代码输出什么吗?字母"a"不能转换成有意义的数字。不过,如果对它调用parseInt()方法,返回的是NaN。根据规则,任何包含NaN 的关系运算符都要返回false,因此这段代码也输出false。

(2)执行类型转换的规则如下:

?如果一个运算数是Boolean值,在检查相等性之前,把它转换成数字值。

false转换成0,true为1。

?如果一个运算数是字符串,另一个是数字,在检查相等性之前,要尝试把字符串转换成数字。

?如果一个运算数是对象,另一个是字符串,在检查相等性之前,要尝试把对象转换成字符串。

?如果一个运算数是对象,另一个是数字,在检查相等性之前,要尝试把对象转换成数字。

在比较时,该运算符还遵守下列规则:

?值null和undefined相等。

?在检查相等性时,不能把null和undefined转换成其他值。

?如果某个运算数是NaN,等号将返回false,非等号将返回true。

?如果两个运算数都是对象,那么比较的是它们的引用值。如果两个运算数指向同一对象,那么等号返回true,否则两个运算数不等。

重要提示:即使两个数都是NaN,等号仍然返回false,因为根据规则,NaN不等于NaN。

下表列出了一些特殊情况,以及它们的结果:

全等号和非全等号

等号和非等号的同类运算符是全等号和非全等号。这两个运算符所做的与等号和非等号相同,只是它们在检查相等性前,不执行类型转换。

全等号由三个等号表示(===),只有在无需类型转换运算数就相等的情况下,才返回true。

例如:

在这段代码中,第一个alert使用等号来比较字符串"66"和数字66,输出"true"。如前所述,这是因为字符串"66"将被转换成数字66,,然后才与另一

个数字66进行比较。第二个alert使用全等号在没有类型转换的情况下比较字符串和数字,当然,字符串不等于数字,所以输出"false"。

非全等号由感叹号加两个等号(!==)表示,只有在无需类型转换运算数不相等的情况下,才返回true。

例如:

这里,第一个alert使用非等号,把字符串"66"转换成数字66,使得它与第二个运算数66相等。因此,计算结果为"false",因为两个运算数是相等的。第二个alert使用的非全等号。该运算是在问:"sNum"与"iNum"不同吗?这个问题的答案是:是的(true),因为sNum是字符串,而iNum是数字,它们当然不同。

2.5流程控制

2.5.1常规流程控制

流程控制语句与Java相同,含if、do-while、while、for、break、continue、标号的使用。

switch与Java中的swtich略有不同,但同样不推荐使用switch,而使用if-else if语句。

2.5.2for-in语句

for语句是严格的迭代语句,用于枚举对象的属性。

它的语法如下:

for(property in expression)statement例子:

这里,for-in语句用于显示window对象的所有属性。

这在学习DHTML之后很有用。

2.5.3with语句

with语句用于设置代码在特定对象中的作用域

with语句是运行缓慢的代码块,尤其是在已设置了属性值时。大多数情况下,如果可能,最好避免使用它。

2.6函数

函数的基本语法是这样的:

function functionName(arg0,arg1,...argN){

statements

}

函数的申明、返回值与Java的方法相同。

在Javascript脚本中直接调用函数与Java在同一个类中调用方法相同,但是与html结合后调用方法则多种多样,以后详细学习。

JavaScript入门教程(初学者不可多得的优秀入门教材,通俗易懂,专业术语通俗化)

第 1 章 JavaScript 语言入门 1 为什么学习 JavaScript
提要:Javascript 是学习脚本语言的首选。她兼容性好,绝大多数浏览器均支持 Javascript,而且她功能强大,实现简单方便,入门简单,即使是程序设计新手也可以非常 快速容易地使用 JavaScript 进行简单的编程。
Javascript 是由 Netscape 公司创造的一种脚本语言。为便于推广,被定为 javascript,但 是 javascript 与 java 是两门不相干的语言, 作用也不一样。 作为一门独立的编程语言, javascript 可以做很多的事情,但它最主流的应用还是在 Web 上——创建动态网页(即网页特效)。 Javascript 在网络上应用广泛, 几乎所有的动态网页里都能找到它的身影。 目前流行的 AJAX 也是依赖于 Javascript 而存在的。 Javascript 与 Jscript 也不是一门相同的语言, Jscript 和 vbscript 是微软开发的两种脚本语 言,微软,Netscape 公司以及其他语言开发商为减少 web 开发者的兼容麻烦,所以成立 ECMA , 该组 织 专 门制定 脚 本 语 言的 标 准 和规范 。 ECMA 制 定 的标 准脚 本 语 言 叫做 ECMAScript,Javascript 符合 ECMA 的标准,其实 Javascript 也可以叫做 ECMAScript. Jscript 也 ECMA 的标准, 但用户较少。vbscript 仅局限在微软的用户, Netscape 不支持。 概括地说,JavaScript 就是一种基于对象和事件驱动,并具有安全性能的脚本语言,脚 本语言简单理解就是在客户端的浏览器就可以互动响应处理程序的语言, 而不需要服务器的 处理和响应,当然 JavaScript 也可以做到与服务器的交互响应,而且功能也很强大。而相对 的服务器语言像 asp https://www.doczj.com/doc/ca8251869.html, php jsp 等需要将命令上传服务器,由服务器处理后回传处理结 果。对象和事件是 JavaScript 的两个核心。 JavaScript 可以被嵌入到 HTML 文件中,不需要经过 Web 服务器就可以对用户操作作 出响应,使网页更好地与用户交互;在利用客户端个人电脑性能资源的同时,适当减小服务 器端的压力,并减少用户等待时间。
2 将 JavaScript 插入网页的方法
与在网页中插入 CSS 的方式相似,使用
language="javascript"表示使用 JavaScript 脚本语言,脚本语言还有 vbscript、 jsscript 等,如果没有 language 属性,表示默认使用 JavaScript 脚本。其中的...就是代 码的内容。例如:

js基础知识

Js1k:用1k的代码做出炫目的效果。代码扩写 犀牛书 微信公众号:前端大全 1. ***变量 2. ***数据类型 一.***变量:内存中存储*一个*数据的存储空间,再起一个名字 何时使用:程序中反复使用的数据,都要先保存在变量中,再参与运算 如何使用:声明赋值取值 1. 声明:在内存中创建一个新变量 如何声明:var 变量名; 仅声明,但暂未赋值,默认值为undefined 变量命名:1. 不能以数字开头,仅能包含字母,数字和下划线 2. 不能用保留字:js中已经预先使用的关键字 比如:name X 3. 见名知意 4. 驼峰命名:第一个单词首字母小写, 之后每个单词首字母大写: 比如:backgroundColor,listStyleType 2. 赋值:将等号*右边*的数据,保存到等号*左边*的变量中 如何赋值:变量名=值;il *对已经包含值的变量赋新值,新值会替换旧值* 建议:1. 在声明同时,初始化变量的值 如何在声明同时初始化:var 变量名=值; 3. 取值:只要使用变量名,在运行时,会被自动替换为变量中的值 特殊情况:3种: 1. 只声明,但未赋值的变量,可任意使用 比如:var hb; console.log(hb); //undefined 2. 从未声明的变量,不能使用(取值)! 报错:ReferenceError: XXX is not defined 3. 未声明的变量,却可赋值!——其实和var不一样 强烈建议:必须用var声明变量 ***声明提前:在程序正式*执行前*,都会将var声明的变量提前到*当前脚本块*的顶部集中声明。再开始执行程序。***赋值留在原地*** 常量:一旦初始化,值不能改变的量 何时使用:程序中,一旦定义不可擅自改变的值,都要用常量保存 如何创建:const 常量名=值; 用作常量的名称,都要大写字母 强行修改常量的值,不会报错,但也无法修改成功!

Javascript基础教程

Javascript简介 (2) Javascript简介 (2) 简单的Javascript入门示例 (4) 编写Javascript 代码 (5) 语句(Statements) (5) 语句块(Blocks) (6) 注释(Comments) (7) 表达式(Expressions) (8) 赋值和等于(Assignments and Equality) (9) Javascript常用运算符(Operators) (10) 算术运算符 (10) 逻辑运算符 (11) 赋值运算符 (12) Javascript 循环语句(Javascript Loop Statements) (12) 使用for 循环语句 (13) 使用for...in 循环语句 . (15) 使用while 和do...while 循环语句 (17) 使用break 和continue 语句 (20) Javascript写在哪里 (23) Javascript在之间 (23)

Javascript在之间 (24) Javascript放在外部文件里 (25) Javascript变量(Javascript Variables) (26) 什么是变量? (26) 变量的声明(Declaring Variables) (26) 变量的命名规则 (27) Javascript条件语句(Javascript Conditional Statements) (27) 单项条件结构(if条件语句) (28) 双向条件结构(if...else条件语句) (29) 多项条件结构(switch条件语句) (31) Javascript保留字(Javascript Reserved Words) (32) Javascript未来保留字(Javascript Future Reserved Words) (33) Javascript简介 Javascript简介

JavaScript常用知识点

1、GET和POST的区别,何时使用POST? GET:一般用于信息获取,使用URL传递参数,对所发送信息的数量也有限制,一般在2000个字符 POST:一般用于修改服务器上的资源,对所发送的信息没有限制。 GET方式需要使用Request.QueryString来取得变量的值,而POST方式通过Request.Form来获取变量的值, 也就是说Get是通过地址栏来传值,而Post是通过提交表单来传值。 然而,在以下情况中,请使用POST 请求: 无法使用缓存文件(更新服务器上的文件或数据库) 向服务器发送大量数据(POST 没有数据量限制) 发送包含未知字符的用户输入时,POST 比GET 更稳定也更可靠JavaScript是客户端和服务器端脚本语言,可以插入到HTML页面中,并且是目前较热门的Web开发语言。同时,JavaScript也是面向对象编程语言。 类似的基本题目还包括:JavaScript都有哪些类型?JavaScript是谁发明的?……2、列举Java和JavaScript之间的区别? Java是一门十分完整、成熟的编程语言。相比之下,JavaScript是一个可以被引入HTML页面的编程语言。这两种语言并不完全相互依赖,而是针对不同的意图而设计的。Java是一种面向对象编程(OOPS)或结构化编程语言,类似的如C ++或C,而JavaScript是客户端脚本语言,它被称为非结构化编程。

3. JavaScript和ASP脚本相比,哪个更快? JavaScript更快。JavaScript是一种客户端语言,因此它不需要Web服务器的协助来执行。另一方面,ASP是服务器端语言,因此总是比JavaScript慢。值得注意的是,Javascript现在也可用于服务器端语言(nodejs)。 4、什么是负无穷大? 负无穷大是JavaScript中的一个数字,可以通过将负数除以零来得到。 5、如何将JavaScript代码分解成几行吗? 在字符串语句中可以通过在第一行末尾使用反斜杠“\”来完成 例:document.write(“This is \a program”); 如果不是在字符串语句中更改为新行,那么javaScript会忽略行中的断点。

javascript基础练习题

基础练习题 一、简单Java程序调试 1)以下哪个是Java应用程序main方法的有效定义? A. public static void main(); B. public static void main( String args ); C. public static void main( String args[] ); D. public static void main( Graphics g ); E. public static boolean main( String a[] ); 2) 编译和运行以下代码的结果为: public class MyMain{ public static void main(String argv){ System.out.println("Hello cruel world"); } } A.编译错误; B.运行输出"Hello cruel world"; C.编译无错,但运行时指示没有定义构造方法。 D.编译无错,但运行时指示没有正确定义main方法。 3)下列选项中不属于Java虚拟机的执行特点的一项是: A.异常处理B.多线程C.动态链接D.简单易学 4)不属于Java语言特点的一项是: A.分布式 B. 安全性 C. 编译执行 D.面向对象 5)以下程序的运行结果为: public class Test{ public static void main(String argv[ ]){ System.out.println("x="+5); } } A. 5 B. x=5 C. "x="+5 D. "x="5 6) 以下程序的运行结果为: public class Test{ public static void main(String argv[ ]){ System.out.println("good"+"morning"); } } A. goodmorning B. "good"+"morning" C. good morning D. good+morning 二、Java符号与表达式 1) 现有一个int类型的整数和一个double类型的数进行加法运算,则得到的结果类型为: A.int类型 B. double类型 C. float类型 D. long类型 2)下面程序段的输出结果是:

Javascript基础

表JS基本类型有什么?引用类型有什么? 基本类型:number,string,boolean,undefined,null 引用类型:基本类型以外的都是引用类型,如object/array/function/date等等 关于基本类型与引用类型的区别可以详细看看@Naraku_的这篇文章: [ JS 进阶] 基本类型引用类型简单赋值对象引用 概况起来有这么几个要点: 1.我们无法给基本类型的对象添加属性和方法; var m1 = 123; https://www.doczj.com/doc/ca8251869.html, = 'abc'; console.log(https://www.doczj.com/doc/ca8251869.html,); //输出:undefined 2.基本类型对象的比较是值比较,而引用类型对象的比较是引用比较; var m1 = 123, m2 = 123; console.log(m1 === m2); //输出:true var o1 = {}, o2 = {}; console.log(o1 === o2); //输出:false 3.基本类型对象是存储在栈内存中的,而引用类型对象其实是一个存储在栈内存中的一个堆内存地址。 4.基本类型对象赋值时(执行=号操作),是在栈内存中创建一个新的空间,然后将值复制一份到新的空间里。 5.引用类型对象赋值时(执行=号操作),也是在栈内存中复制一份一样的值,但这个值是一个堆内存地址,所以被赋值的那个对象跟前者其实是一个对象。 var o1 = {}; var o2 = o1; https://www.doczj.com/doc/ca8251869.html, = 'abc';console.log(https://www.doczj.com/doc/ca8251869.html,); // --> abc console.log(https://www.doczj.com/doc/ca8251869.html,); // --> abc o2.age = '123';console.log(o1.age); // --> 123console.log(o2.age); // --> 123 JS中的常见对置对象类

Vue.js基础知识汇总

Vue.js 专注于MVVM 模型的ViewModel 层。它通过双向数据绑定把View 层和Model 层连接了起来。Vue.js和其他库相比是一个小而美的库,作者的主要目的是通过一个尽量简单的API 产生可反映的数据绑定和可组合的视图组件,感觉作者的思路非常清晰。 介绍 vue.js 是用来构建web应用接口的一个库 技术上,Vue.js 重点集中在MVVM模式的ViewModel层,它连接视图和数据绑定模型通过两种方式。实际的DOM操作和输出格式被抽象的方式到指令(Directives)和过滤器(Filters) 在哲学领域内,尽量让MVVM数据绑定API尽可能简单。模块化和可组合性也是重要的设计考虑。vue不是一个全面的框架,它被设计成简单的和灵活的。你可以用它快速原型,或混合和匹配与其他库定义前端堆栈。 Vue。js的API是参考了AngularJS、KnockoutJS Ractive.js Rivets.js。尽管有相似之处,我相信Vue.js提供一个有价值能够让你在现在的一些现有框架中舍取其价值即使你已经熟悉其中的一些术语,建议您通过以下概念的概述,因为你的这些术语的概念可能在Vue.js的下文中有所不同 概念概述 ViewModel 一个对象,同步模型和视图. 在Vue.js中,ViewModels是实例化的Vue的构造器或者是它的子类 var vm = new Vue({ /* options */ }) 这是主要的对象,你会与作为开发人员在使用Vue.js交互。更多细节请参阅Class: Vue. View 用户看到的实际HTML / DOM vm.$el // The View 当使用Vue.js时候,除了自己自定义的指令你几乎不会触碰到DOM的操作,当数据更新后视图的更新将会自动的触发,视图的更新可以很精确的到每一个testNode节点,他们也批处理和异步执行从而提供更好的性能。 Model 这是一个略微修改的Javascript对象 vm.$data // The Model 在Vue.js中,模型只是简单的Javascript对象,数据对象,你能够操控他们的属性和视图模型,观察他们的从而能获取通知后更改。Vue.js在data对象胡总用ES5的getter/setter 把属性转化了,它允许直接操作而不需要脏检查。 data对象在适当的时候会产生突变,所以修改它与通过引用修改vm.$data是一样的效果。这也方便了多个ViewModel实例观察同一块数据。 技术细节请看Instantiation Options: data. Directives 私有的HTML属性是告诉Vue.js做一些关于DOM的处理 <div v-text="message"></div> 这里的div元素有一个v-text的指令,值是message.意思是告诉Vue.js 保持这个div节点的内容与viewMode中的message属性同步 指令可以封装任意DOM操作。例如v-attr 操作一个属性元素,v-repeat克隆基于数组的

最新JavaScript_深度剖析(从入门到精通)

第一讲JavaScript语言概况 第二讲JavaScript基本数据结构 第三讲JavaScript程序构成 第四讲基于对象的JavaScript语言 第五讲创建新对象 第六讲使用内部对象系统 第七讲窗口及输入输出 第八讲WEB页面信息的交互 第九讲实现更复杂的交互 第一讲JavaScript语言概况 Internet时代,造就了我们新的工作和生活方式,其互联性、开放性和共享信息的模式,打破了传统信息传播方式的重重壁垒,为我们带来了新的机遇。随着计算机和信息时代的到来,人类社会前进的脚步在逐渐加快,每一天都有新的事情发生,每一天都在创造着奇迹。随着Internet技术的突飞猛进,各行各业都在加入Internet的行业中来。无论从管理方面,还是从商业角度来看,Internet都可以带来无限生机。通过Internet,可以实现地区、集体乃至个人的连接,从而达到一种“统一的和谐”。那么怎样把自己的或公司的信息资源加入到WWW 服务器,是广大用户日益关心的问题。采用超链技术(超文本和超媒体技术)是实现这个目标最简单的、最快速的手段和途径。具体实现这种手段的支持环境,那就是HTML 超文本标识语言。通过它们可制作所需的Web网页。 通过超文本(Hyper Text)和超媒体(Hyper Media)技术结合超链接(Hyper link)的链接功能将各种信息组织成网络结构(web),构成网络文档(Document),实现Internet上的“漫游”。通过HTML符号的描述就可以实现文字、表格、声音、图像、动画等多媒体信息的检索。 然而采用这种超链技术存在有一定的缺陷,那就是它只能提供一种静态的信息资源,缺少动态的客户端与服务器端的交互。虽然可通过CGI (Common Gateway Interface)通用网关接口实现一定的交互,但由于该方法编程较为复杂,因而在一段时间防碍了Internet技术的发展。而JavaScript的出现,无凝为Internet 网上用户带来了一线生机。可以这样说,JavaScript的出现是时代的需求,是当今的信息时代造就了JavaScript。 JavaScript的出现,它可以使得信息和用户之间不仅只是一种显示和浏览的关系,而是实现了一种实时的、动态的、可交式的表达能力。从而基于CGI静态的HTML页面将被可提供动态实时信息,并对客户操作进行反应的Web页面的取代。JavaScript脚本正是满足这种需求而产生的语言。它深受广泛用户的喜爱的

JavaScript 经典代码大全

代码一 1. oncontextmenu="window.event.returnvalue=false" 将彻底屏蔽鼠标右键

no
可用于Table 2. 取消选取、防止复制 3. onpaste="return false" 不准粘贴 4. oncopy="return false;" oncut="return false;" 防止复制 5. IE地址栏前换成自己的图标 6. 可以在收藏夹中显示出你的图标 7. 关闭输入法 8. 永远都会带着框架 9. 防止被人frame 10. 网页将不能被另存为 11. 12.删除时确认 删除 13. 取得控件的绝对位置 //javascript //VBScript 错误原因:当浏览器解析到字符串””时,会结束JavaScript代码段的执行。解决方法: 使用转义字符把字符串‘’分成两部分来写就不会造成浏览器的误解。 代码测试和错误处理,理解浏览器的不同内核和代码不同的兼容性,在不同浏览器代码报错的时候会有不同的调试方法,学会使用浏览器的调试器对网页开发效率会有很大的提高。现在主流的浏览器是Chrome、Firefox、Safari等。 JavaScript的基本语法和各种变量,各种数据类型及各种数据类型的转换。 重点:避免变量污染 Var foo = function(){ Var a = 1, b = 2; Var bar = function(){ Var b = 3, c=4, //a= 1,b =3, c=4 a+=b + c; // a=8, b=3, c=4 }; //a=1, b=2, c = undefined bar(); //a= 21,b=2,c= undefined } JavaScript运算符的使用。JavaScript定义了51个运算符,主要分为一下几大类,位运算符、算术运算符、逻辑运算符、关系运算符、赋值运算符、对象炒作运算符和其他运算符。设计程序结构。程序都是由一个或多个语句组成的集合,语句表示一个可以执行的命令。用来完成特定的任务。大部分语句用于流程控制,在JavaScript中提供了if条件判断语句、switch多分枝语句、for循环语句、while循环语句、do/while循环语句、break语句、continue语句等7种流行控制语句。

JS基础阶段考试试题上课讲义

J S基础阶段考试试题

H5-JS基础试题 姓名:班级:成绩: 一、单选题(每小题1分,20小题,共60分) 1、null,undefined,”string",20,true和false的共同点是() A、都是对象 B、都有相同的实例属性 C、都是原始值 D、都是函数 2、下列哪个正确的引入了myScript.js() A、