ImageVerifierCode 换一换
格式:DOCX , 页数:62 ,大小:42.37KB ,
资源ID:27740366      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/27740366.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(javascript基础t.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

javascript基础t.docx

1、javascript基础tJavascript基础:面向对象;http:/DOM 文档对象模型;eg:window.document.write( );alert();var 定义变量;prompt( );var the_name=prompt(“ ”,” ”);javascript字符集: javascript采用的是Unicode字符集编码。 为什么要采用这个编码呢? 原因很简单,16位的Unicode编码可以表示地球人的任何书面语言。这是语言国际化的一个重要特征。(大家也许见过用中文写脚本,比如:function 我的函数() ); Javascript中每个字符都是用2个字节表示的。(

2、因为是16位编码) 大小写敏感: js是一种区分大小写的语言。 注意下:以前我也犯过的错误。 HTML是不区分大小写的。经常看见有人这么写, (这样写是对的) 如果放到JS中,就必须使用onclick(小写哦!) 同时XHTML中也只能使用小写。 这个我们并不需要太关心,象这种问题,其实都可以自己给自己定一个标准,自己写程序的时候全部小写。 另外每行程序后 分号 也是一样,我们都写上。 注释: 单行: / 注释1 /* 注释2 */ 多行: /* 注释3 * 注释3 * 注释3 */ 标识符: 标识符就是一个名字,用来命名变量和函数。 规则:第一个字母必须是字母,下划线(_),或美圆符号($)

3、。 为什么第一个字母不能为数字? 如果第一个为数字,js很容易就把它当作数字处理了,那么命名就没意义了,js规定了后,就很容易的区分了标识符和数字了。 直接量: 就是程序中直接显示出来的数据值。 比如:12 , 1.2 , “ hello “ , true , null , 1,2,3,4 这些都是直接量。 保留字和关键字: 具体是哪些,可以去搜索。 其实我们只要不取一些特郁闷的名字,都不会冲突的。 js数据类型: 3种基本的类型:数字,字符串和布尔值。 2种小数据类型:null 和 undefined . (为什么叫小数据类型?因为他们只定义了一个值) 1种复合类型:object. (在这个

4、类型中,它的值可以是基本数据类型,也可以是复合类型,比如其他的object. ) 注意:在对象中有一个特殊的对象-function.(它是一个可以执行代码的对象.) 其他的一些对象: 数组: Date类 : 是日期的对象。 RegExp类: 正则表达式的对象。 Error 类:js中发生错误的对象。 使用数据类型注意的地方: 数字: 由于数字有什么8进制,10进制,16进制等。 八进制:var num = 011; /以0开头 十六进制:var num =0x1f; /以0x开头 所以对于js这个都能识别的语言来说,就必须得注意。 alert(377); / 377 alert(0377);

5、/255 = 3 * 64 + 7 * 8 + 7 * 1 进行算术运算有个重要的对象:Math. 具体可以去网上下载手册,查询里面的方法。 2个有用的函数:isNaN()和isFinite() isNaN() : 用于检查其参数是否是非数字值。/ 提示:是非数字哦。(not a number) document.write(isNaN(0) ) /返回false document.write(isNaN(5-2) ) /返回false document.write(isNaN (Hello) ) /返回true isFinite(number) 函数用于检查其参数是否是无穷大。 如果numb

6、er是有限的,则返回true. 如果 number 是 NaN(非数字)或者是无穷大,则返回false; 字符: youre right; 这样写的话js会误以为 在you字母后就结束了,引起错误。 所以当遇到这种情况的时候,必须用到转义。 我们可以这么写: youre right; 另外:你可以 搜索 转义序列表 。 字符串的简单操作例子: var a = cssrain; var b = a.charAt(a.length-1); / 从字符串a中截取最后一个字符。 输出:n var c = a.substring(0 , 2); / 从字符串a中截取第1,2个字符。 输出:cs var

7、d = a.indexOf(s); / 从字符串a中查找第一个s出现的位置。 输出:1 从例子可以看出,基数都是从0开始的。 var e = a.substring( a.length-1 ); /可以看出,substring第2个参数不写的话, /默认 是到最后。 var f = a.substring( a.length-1 , a.length);/等价于 数字跟字符之间的转换: 数字转字符: var number_to_string = number + “ ”; /方法1:添加一个空的字符串。 var number_to_string =String(number); /方法2:使用

8、String()函数。 var number_to_string =number. toString(); /方法3:使用toString()函数。 注:toString()方法默认是以10进制转换。 如果要使用8进制转换可以 这么写: number. toString(8); 字符转数字: var string_to_number = string 0 ; /方法1: 字符串减去0。 var string_to_number = Number(string) ; /方法2:使用Number ()函数。 var string_to_number = parseInt(string) ; /方法

9、3:使用parseInt ()函数。 方法1中不能 用string+0 ; 这样会导致字符串拼接,而不是类型转换。 方法2 中的Number函数转换,比较严格。 比如: var a = 19cssrain86; var b = Number(a); /输出NaN. 如果我们使用方法3。 var c = parseInt(a); /输出 19 可以看出parseInt()会自动忽略非数字的部分。 parseInt()只取整数部分,忽略小数部分。 parseFloat()会把小数部分也取到。 和toString()一样,parseInt也有进制,默认是10进制。 如果想使用8进制,可以这么写: p

10、arseInt( “077” , 8 ); / 输出63 = 7 * 8 + 7 当字符以0开头的时候,我们必须把 第二个参数 指明,不然js可能会以8进制去转换。 布尔类型: 布尔在数字环境中:true 转换为 1 ,false 转换为 0 。 在字符环境中:true 转换为 “true” ,false 转换为 “false” 。 布尔转换: var x_to_Boolean = Boolean(x); /方法1:使用Boolean ()函数。 var x_to_Boolean = !x; /方法2:使用 感叹号。 函数的定义: 方法1:普通定义 function square(x) ret

11、urn x*x; 方法2:函数直接量定义 var square = function(x) return x*x; /推荐使用 方法3:构造参数 var square = new Function(“x”,”return x*x;”); /效率低 对象: 如果有一个名为 cssrain 的对象 , 他有一个高度height的属性。 那么我们可以这么引用: cssrain.height; 还可以使用关联数组定义:cssrain“height”; 创建对象: 方法1: var point = new Object(); point.x = 3; point.y = 5; 方法2:使用对象直接量 v

12、ar point = x:3 , y:5 当然json也可以咯。 对象在字符的环境下,会调用toString()方法。 数字环境下,会调用valueOf()方法。 布尔环境下,非空对象为true; 7):数组: 常规数组:以非负整数做为下标。image0 关联数组:以字符做为下标。如:image“width” js不支持多维数组,但数组里面可以嵌套数组。 创建数组: 方法1: var a = new Array(); a0 = “1”; a1 = 2; a2 = x:1, y:3; 方法2: var a = new Array(“1” , 2 , x:1,y:3 ); 注意下:如果只传了一个参

13、数;比如var a = new Array(3); 那么它是表示:3个未定义元素 的 新数组。 方法3:使用数组直接量 var a =“1” , 2 , x:1 , y :3 ; /注意外面的 括号 , 不是花 括号。 8):null和undefined: null表示无值; undefined : 使用一个并未声明的变量,或者使用了已经声明的变量但未赋值或者使用了一个并不存在的属性。 undefined=null 如果要区分: 可以使用= 或者typeof运算符。 9 ,新手常遇到的疑惑: var s =”you are right”; var b = s.substring(s.lastI

14、ndexOf(“ ”)-1 , s.length); 疑惑:s是对象还是字符串,为什么字符串会有方法呢? 回答:s是字符串。之所以有方法 ,是因为 string类型 有一个相应的对象类(String)。 同样数字和布尔都有相应的Number , Boolean类。 Js会内部进行相应的包装对象。String对象就替换了原始的字符串。 总结: 简单了介绍了js中的一些概念(词法结构) 和 数据类型(部分)。 好了,今天就说到这里, 明天我们 继续。_。 笔记我已给部分群员看过,有好的评论也有不好的评论。所以我郑重声明下: 这是我看了DOM编程艺术,悟透JavaScript,javascript权

15、威指南5做的笔记, 我资质不深,不能写出高深的文章, 如果你觉得笔记写得不好,可以不看我以后的。这篇文章就当作浪费你几分钟。上篇文章讲了js中的一些概念(词法结构) 和 数据类型(部分)。 这章我们 继续.然后了解下js中操作数据 和 函数的 作用域。 1,对象跟基本类型之间的转换: 不管何时,只是对象非空,在布尔环境中都为true. 如; new Boolean(false); new Number(0); new String(“”); new Array(); 上面虽然内部值是false,但对象的值是true; Object valueOf() toString() 其中Date类,是先

16、执行toString()转换。 2,js中操作一个数据值: 任何语言都有自己的操作数据的方法; Js也不例外,js有3种重要的方式来操作一个数据值。 复制它。例如把它赋给一个新的变量。 把它作为参数传递给一个函数或方法。 可以和其他值比较大小。 Js通过传值和传址2种方式操作这些数据的值。 从名称可以看处,传值 是通过传递值来操作数据。在赋值的过程中,对实际的值进行了拷贝,存储到一个新的变量中。拷贝的值和原来的值是2份完全独立的值。所以如果你改变了拷贝的值,并不会影响原来的值。当比较大小时候,通常进行琢个字节比较。 传址 从名字来看,就是通过传递地址来操作数据。在赋值的过程中,对实际的值的地址

17、(可以说是引用)进行了拷贝,他们不是完全的独立,所以如果你通过引用改变了值,那么原始的值也会改变。当比较大小的时候,通常是看他们是否引用同一个地址来比较。 简单的传址例子: var a = new Date(); alert(a.getDate(); var b = a ; b.setDate(21); alert(a.getDate() / 输出21 3,一般来说: 基本数据类型通过传值来操作的。(如果忘记了哪些是基本数据类型,可以往回看。) 对象数据类型通过传址来操作的。(比如 数组和函数) 例子: /传值 a=1; b=a; b=2; alert(a); /输出 1 /传址 x=1,2;

18、 y=x; / 赋给y的只是x的一个引用,而不是x本身。数组已经在语句中被赋值了,执行过这段代码后,仍旧只有一个数组对象,只不过我们有2个对他的引用了。 y0=2; alert(x0 + | +x1); /输出 2 | 2 其中我们必须注意字符串: js中字符串是通过传址来复制和传递的,而他们是通过传值来比较的。 对象和数组是用传值来传递的,只不过传递的这个值实际是一个引用,而不是对象本身。 总结: 类型 复制 传递 比较 数字 传值 传值 传值 布尔 传值 传值 传值 字符串 不可变 不可变 传值 对象 传址 传址 传址 不可变:在JS中,没有方法去改变字符串值的内容。 对字符串来说,传值还

19、是传址,意义不大。 4,垃圾收集机制: Js中自动释放内存。 比如: var s =”heelo”; var b = s.toUpperCase(); s=b; /运行到这里后,js会自动检测不再使用某个对象,因为s=b了,所以js会自动释放字符串“heelo”所占的存储空间。即我们不能再获取原始的 “heelo” 值;. 5 , javascript变量: Js是非类型的。它的变量可以放任何类型的值。 变量的声明: var a ; var b ; 或者 var a , b ; 或者 var a=0 , b=1 ; 重复声明 是合法的, 如果 遗漏声明 , js会隐式的声明该变量。当然隐式声明

20、的变量总是全局变量。 6 , 变量的作用域: Js有2种:全局和局部。 从名字的定义可以知道,全局变量的作用域是全局性的。 在js代码中,处处都有定义。 局部变量的作用域是局部的。 在函数体内定义。 同名的局部变量的优先级比同名的全局变量高,下面的例子说明了这点: var a =abc; /全局变量 function check() var a = efg; /同名的局部变量 document.write(a); check(); / 输出 efg 看一个比较经典的例子: var scope = global; function f() alert(scope); /输出 undefined

21、var scope = local; alert(scope); /输出 local f(); 为什么第一个会输出undefined 呢? 因为js规定当 局部变量和全局变量的名称相同的时候,函数体内的同名全局变量会被隐藏。 那么刚才例子 实际 等价于: function f() var scope; alert(scope); scope = local; alert(scope); f(); OK,如果你看懂了这个例子,说明你对局部和全局的一些区别稍微了解了。 7 , 变量的作用域: 从里到外: 词法作用域 作用域链 变量查找 var x = 1; function f() var y =

22、2 ; function g() var z =3 ; 调用g()对象; z =3 ; 调用f()对象; y =2 ; 全局变量 x = 1 在此定义了吗? 是 否 获得值 在此定义了吗? 是 否 获得值 在此定义了吗? 是 否 获得值 未定义 8 , 客户端全局变量: 在客户端js中,Window对象代表浏览器窗口,他是一个全局对象。、 比如 ;我们常用的 parseInt() , Math() 都是Window对象定义的属性。 Js允许多个全局变量的执行环境,每个环境有不同的全局对象。 比如:客户端js的每个独立的浏览器窗口,或者同一窗口的不同帧。 其中的代码都运行在自己的执行环境中,具有

23、自己的全局对象。 当然可以使用 表达式 parent.frames0.x ; 来引用第一个帧中的全局变量 x ;这样就把不同帧中的代码联系起来了。 不过这里有安全性问题。 总结; 主要讲了 传值和传址 和 函数的作用域 。 对新手来说稍微难理解些。如果还有上篇文章讲了js中的传值和传址 和 函数的作用域. 这章我们来探讨js中的变量,表达式,和运算符 还有一些 js 语句。 升级中 1, 表达式: 最简单的表达式:直接量或者变量名。var a =1; 直接量表达式的值:本身。 变量表达式的值:该变量所存放或引用的值。 2 , 运算符: 一元运算符: 比如 - 3 二元运算符: 比如 3+4 三

24、元运算符: 比如 ? : 新手常遇到的问题: 递增运算符: 比如: i = 1 ; j = + i ; / 前递增运算,即先对运算数进行递增,然后再去计算。 /输出 i =2; j=2 ; i = 1 ; j = i +; / 后递增运算,即先去计算,然后再对运算数进行递增。 /输出 i =2; j=1 ; 3, 相等运算符: = : 赋值运算符; = : 相等运算符; = : 等同运算符; 值NaN永远不会与任何值相等,包括自己。 alert(NaN = NaN); /false NaN 意思为 Not a Number 要检测一个值是否是NaN,可以使用全局函数isNaN(); 另外新手要

25、注意: var a =1,2,3; var b =1,2,3; document.write(a=b); / 输出false .(这个其实是 第一章讲的内容。) / 虽然值相同,类型相同,但址不同。 - var a =1,2,3; var b = a ; var c = a ; document.write(b=c);/输出true; - var a = 1; var b = true ; document.write(a=b); /输出 true document.write(a=b); /输出 false ; 值相同, 类型不同 4, 比较运算符: 要注意的就是字符串是进行琢个比较。 而且

26、会区分大小写。 如果你的需求是不区分大小写: 可以使用 String.toLowerCase() /纯小写 String.toUpperCase() /纯大写 转换后 ,然后再去比较. 5, in 运算符: 要注意的是:左边的值是其右边对象的属性。 比如: var a = x : 1 , y : 2 ; var b = “x” in a ; / true var c = “toString” in a ; / true . 左边的值是其右边对象的属性。 6 instanceof 运算符: 要注意的是:左边的运算数是一个对象,右边的运算数是对象类的名字。 比如: var a = new Date

27、() a instanceof Date; / true a instanceof Object ; / true a instanceof Number ; / false 7, 3元条件运算符: 要注意的是:第一个运算数必须是一个布尔值。 X 0 ? 3 : 2 ; 8, typeof运算符: 要注意的是:由于typeof对所有的对象和数组都是返回 object; 所以它只能区分对象和原始数据类型时才有用。 要区别一种对象类型和另一种对象类型,可以使用 instanceof 和 constructor 属性。 9, delete运算符: 要注意的是:并不是所有的属性和变量都能删除。 比如:

28、 用var 语句声明的变量不能被删除。 另外;当delete删除一个不存在的属性时,返回true;(_,这个比较搞笑。) var a = 1; alert( delete a ); /返回 false alert( delete a.x ); /返回 true 还有一个应该注意: Delete 所能影响的只是属性值,并不能影响被这些属性引用的对象。 比如: var my =new Object(); my.height = new Date(); my.width = my.height; delete my.height ; document.write(my.width);/ my.wid

29、th仍然是引用Date对象 10,void运算符: void的一个用途: 专门生成undefined值、 alert( void(0) ) alert( void(1) ) /都输出 undefined 这里的undefined实际是 void()运算后的值。 考虑到向后兼容性,用表达式void 0 比使用 undefined属性更有用. 11,异常处理: 抛出异常: throw 捕捉异常:try / catch / finally If(x0) throw new Error(“x must not be negative!”); try catch(e) finally /总是被最后执行 。通常进行 消除操作。 12,with语句: var form = frame

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1