Javascript学习

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

Javascript 学习第一季(1) 1 , javascript字符集: javascript采用的是Unicode字符集编码。为什么要采用这个编码呢?原因很简单,16位的Unicode编码可以表示地球人的任何书面语言。这是语言国际化的一个重要特征。(大家也许见过用中文写脚本,比如:function 我的函数() {}  ); Javascript中每个字符都是用2个字节表示的。(因为是16位编码) 2 ,大小写敏感: js是一种区分大小写的语言。注意下:以前我也犯过的错误。 HTML是不区分大小写的。经常看见有人这么写, input type=”button” onClick=”a()”/ (这样写是对的)如果放到JS中,就必须使用onclick(小写哦!)同时XHTML中也只能使用小写。这个我们并不需要太关心,象这种问题,其实都可以自己给自己定一个标准,自己写程序的时候全部小写。另外每行程序后分号也是一样,我们都写上。 3 ,注释:单行: // 注释1 /* 注释2  */ 多行: /* 注释3 * 注释3 * 注释3 */ 4 ,标识符:标识符就是一个名字,用来命名变量和函数。规则:第一个字母必须是字母,下划线(_),或美圆符号($)。为什么第一个字母不能为数字?如果第一个为数字,js很容易就把它当作数字处理了,那么命名就没意义了,js规定了后,就很容易的区分了标识符和数字了。 5 ,直接量:就是程序中直接显示出来的数据值。比如:12  , 1.2  ,“hello“, true ,  null  , [1,2,3,4] 这些都是直接量。 6 ,保留字和关键字:具体是哪些,可以去google.cn。其实我们只要不取一些特郁闷的名字,都不会冲突的。 7 ,js数据类型: 3种基本的类型;数字,字符串和布尔值。 2种小数据类型: null 和 undefined . (为什么叫小数据类型?因为他们只定义了一个值) 1 种复合类型:object. (在这个类型中,它的值可以是基本数据类型,也可以是复合类型,比如其他的object. ) 注意:在对象中有一个特殊的对象­­­­function.(它是一个可以执行代码的对象.) 其他的一些对象: 数组: Date类:是日期的对象。 RegExp类:正则表达式的对象。 Error 类:js中发生错误的对象。 8 ,使用数据类型注意的地方: 1):数字:由于数字有什么8进制,10进制,16进制等。。。八进制:var num = 011; //以0开头十六进制:var num =0x1f; //以0x开头所以对于js这个都能识别的语言来说,就必须得注意。 alert(377); // 377 alert(0377);    //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) 函数用于检查其参数是否是无穷大。如果 number 是有限的,则返回 true. 如果 number 是 NaN(非数字)或者是无穷大,则返回false; 2):字符: ‘you’re right’; 这样写的话js会误以为在you字母后就结束了,引起错误。所以当遇到这种情况的时候,必须用到转义。我们可以这么写: ‘you\’re right’; 另外:你可以 google.com搜索转义序列表。字符串的简单操作例子: var a = cssrain; var b = a.charAt(a.length­1); // 从字符串a中截取最后一个字符。输出:n var c = a.substring(0 , 2);  // 从字符串a中截取第1,2个字符。输出:cs var 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);//等价于 3):数字跟字符之间的转换:数字转字符: var number_to_string = number +“”; //方法1:添加一个空的字符串。 var number_to_string =String(number); //方法2:使用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) ; //方法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进制,可以这么写: parseInt(“077”, 8 ); // 输出63 = 7* 8 + 7 当字符以 0 开头的时候,我们必须把第二个参数指明,不然 js 可能会以 8 进制去转换。 4):布尔类型:布尔在数字环境中:true 转换为 1 ,false 转换为 0 。在字符环境中:true 转换为 “true” ,false 转换为 “false” 。布尔转换: var x_to_Boolean = Boolean(x); //方法1:使用Boolean ()函数。 var x_to_Boolean = !x; //方法2:使用感叹号。 5):函数的定义:方法1:普通定义 function square(x){ return x*x; } 方法2:函数直接量定义 var square = function(x){  return x*x; }   //推荐使用方法3:构造参数 var square = new Function(“x”,”return x*x;”);   //效率低 6):对象:如果有一个名为 cssrain 的对象,他有一个高度height的属性。那么我们可以这么引用: cssrain.height; 还可以使用关联数组定义:cssrain[“height”]; 创建对象:方法1: var point = new Object(); point.x = 3; point.y = 5; 方法2:使用对象直接量 var point = {x:3 , y:5 } 当然json也可以咯。对象在字符的环境下,会调用toString()方法。数字环境下,会调用valueOf()方法。布尔环境下,非空对象为true; 7):数组:常规数组:以非负整数做为下标。image[0] 关联数组:以字符做为下标。如:image[“width”] js不支持多维数组,但数组里面可以嵌套数组。创建数组:方法1: var a = new Array(); a[0] = “1”; a[1] = 2; a[2] = { x:1, y:3}; 方法2: var  a  =  new Array(“1”, 2 , {x:1,y:3} ); 注意下:如果只传了一个参数;比如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.lastIndexOf(“”)­1 , s.length); 疑惑:s是对象还是字符串,为什么字符串会有方法呢?回答:s是字符串。之所以有方法,是因为 string类型有一个相应的对象类(String)。同样数字和布尔都有相应的Number , Boolean类。 Js会内部进行相应的包装对象。String对象就替换了原始的字符串。总结:简单了介绍了js中的一些概念(词法结构)和数据类型(部分)。好了,今天就说到这里,明天我们继续。^_^。笔记我已给部分群员看过,有好的评论也有不好的评论。所以我郑重声明下:这是我看了DOM编程艺术,悟透JavaScript,javascript权威指南5做的笔记,我资质不深,不能写出高深的文章,如果你觉得笔记写得不好,可以不看我以后的。这篇文章就当作浪费你几分钟。Javascript 学习第一季(2)上篇文章讲了js中的一些概念(词法结构)和数据类型(部分)。这章我们继续.然后了解下js中操作数据和函数的作用域。 1,对象跟基本类型之间的转换:不管何时,只是对象非空,在布尔环境中都为true. 如; new Boolean(false); new Number(0); new String(“”); new Array(); 上面虽然内部值是false,但对象的值是true; ObjectàvalueOf()àtoString() 其中Date类,是先执行toString()转换。 2,js中操作一个数据值:任何语言都有自己的操作数据的方法; Js也不例外,js有3种重要的方式来操作一个数据值。 1) 复制它。例如把它赋给一个新的变量。 2) 把它作为参数传递给一个函数或方法。 3) 可以和其他值比较大小。 Js通过传值和传址2种方式操作这些数据的值。从名称可以看处,传值是通过传递值来操作数据。在赋值的过程中,对实际的值进行了拷贝,存储到一个新的变量中。拷贝的值和原来的值是 2 份完全独立的值。所以如果你改变了拷贝的值,并不会影响原来的值。当比较大小时候,通常进行琢个字节比较。传址从名字来看,就是通过传递地址来操作数据。在赋值的过程中,对实际的值的地址(可以说是引用)进行了拷贝,他们不是完全的独立,所以如果你通过引用改变了值,那么原始的值也会改变。当比较大小的时候,通常是看他们是否引用同一个地址来比较。简单的传址例子: var a = new Date();alert(a.getDate()); var b = a ; b.setDate(21); alert(a.getDate())// 输出21 3,一般来

1 / 34
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功