




已阅读5页,还剩107页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Untitled Document/把内容打印到页面上/document.write(hello js!);/弹出警告框/alert(hello js!);/在控制台打印输出内容/(hello world);Untitled Document!-/ helloworld/浏览器对象 window 弹出警告框 /window.alert(hello javascript! my comming.);/文档的对象/document.write(我是第一个程序.!);/把内容打印到控制台/(hello js!);-alert(我是内部代码!);Untitled Document/关于全局变量和局部变量的简单说明 /*var a = 3 ;/ number全局变量 /变量一共有两种: 全局变量 局部变量function test()/var b = 2 ;/局部变量c = 5 ;/全局变量alert(a);test();alert(c);/alert(b);*/javascript是弱类型变量的脚本语言 ,根据赋值决定变量的类型 / Number类型 整数和小数var a1 = 10 ; var a2 = 10.5 ;var a3 = NaN; /not a numbervar a4 = 1/0 ;/正无穷var a5 = 070;/8进制 和16进制(0xA)/alert(a4);/alert(a5);/*var a6 = 0.1 ; var a7 = 0.2 ;if(a6+ a7 = 03)alert(等于0.3); else alert(不等于0.3);*/var a8 = parseInt(aaabbcc); /不是一个数/alert(a8);var a9 = parseInt(12bbcc);/alert(a9);/undefined 数据类型 他的值只有一个:undefined 表示变量声明了,但是没有被赋值var b1 ;/alert(b1);/Null 空值var b2 = null ;/alert(b2);/String var str1 = 我是字符串1;var str2 = 我是字符串2;/ Boolean var flag1 = false ; var flag2 = true ; / 引用数据类型var arr = 1,2,3;/数组类型var dates = new Date();/日期类型var obj = ;/空对象/ typeof 操作符 用来判断数据类型的var a = 10 ;var b = 10.3 ; var c = true ; var d = abcd;var e = new Date();var f = NaN ;var g = 1,2,3;var h = undefined ;var i = null;/表示一个空对象的引用alert(typeof i);Untitled Document/*var a1 = 10 ; var a2 = 10.0 ;if(a1 = a2)alert(相等);*/js数据自动转换的机制 /*var a = 1 ; /numbervar b = true ; /boolean/ = 表示 可以经过自动转换 比较的是数值 / = 表示 可以经过自动转换 先比较值, 再比较数据类型if(a = b)alert(相等); else alert(不等);*/三目运算符:/var c = 10/24?5:3;/alert(c);/关于for循环的特点:/*for(var i =0 ;i 5 ; i+)alert(i);*/死循环/*for(;)alert(执行体!);*/* * var i = 0 ;while(i 5)alert(执行);i+;*/*var i = 0 ;for(;i5;i+)alert(执行);*/Untitled Document/* * 数组本身也是对象 * js中数组类似于java里的map容器 长度可随意改变 ,元素类型任意 * */ var arr = new Array();/ var arr = 1,2,3,4,true ,abc , new Date() ;/ alert(arr.length);/ arr.length = 5 ;/ alert(arr.toString(); / object object/* * push 和 pop 方法 */var arr = new Date(),false ;/var result = arr.push(1,2,true);/push方法向数组中追加元素(返回值为新数组的长度)/alert(arr);/alert(result);/var obj = arr.pop();/从数组的尾部移除一个元素(返回值为移除的元素)/alert(arr);/alert(obj);/* * shift 和 unshift 方法 */var arr = 1,2,3, true , new Date();/var r1 = arr.shift();/从头部移除一个元素(返回移除的元素)/alert(arr);/alert(r1);/var r2 = arr.unshift(10,false);/从头部插入多个元素(返回新数组的长度)/alert(arr);/alert(r2);/* * splice、slice 方法 (截取的方法) * splice方法操作数组本身 * slice方法不操作数组本身 * */ splice: 第一个参数 :起始位置/ 第二个参数 :表示截取的个数/ 第三个参数以后:表示追加的新元素个数/var arr = 1,2,3,4,5;/arr.splice(1,2,3,4,5);/ 134545/alert(arr);/ slice:/返回截取的内容 /截取范围 (左闭右开区间)/var arr = 1,2,3,4,5;/var reuslt = arr.slice(2,4); /alert(reuslt);/3,4 /操作数组的方法: concat join/var arr1 = 1,2,3;/var arr2 = true , 4 , 5;/var reuslt = arr1.concat(arr2);/合并粘连的操作(不操作数组本身)/alert(reuslt);/var result = arr1.join(-);/在每个元素之间加入内容(不操作数组本身)/alert(arr1); /alert(result);/* * sort排序 * reverse倒叙 */var arr1 = 5,2,1,4,3;var arr2 = 10,2,4,1,7;/arr1.sort();/arr1.reverse();/倒叙排序 是按照集合的位置进行倒叙的/alert(arr1);/arr2.sort();/alert(arr2);/ 1 10 2 4 7function compare(value1 , value2)if(value1 value2)return 1 ; else return 0 ;arr2.sort(compare);alert(arr2);Untitled Documentvar arr = 1,2,3,4,5,4,3,2,1;/*/新加位置的方法: indexOf lastIndexOf/ 1个参数的时候表示传值 返回索引位置(index从0开始)/var index = arr.indexOf(4);/ 2个参数的时候 第一个参数表示起始位置 第二个参数还是值 /var index = arr.indexOf(4,4);/alert(index);/他们查找数组比较的时候 =/ lastIndexOf /var index = arr.lastIndexOf(2);/alert(index);*/5个新加迭代的方法/every :对于数组每一个元素进行一个函数的运行 如果都返回true 最后则返回true 如果有一个返回false最后结果则返回false/*var result = arr.every(function(item , index , array)return item 2 ;);alert(result);*/filter :对于数组的每一个元素进行一个函数的运行 给定的函数去执行 把过滤后的结果返回 /*var result = arr.filter(function(item , index , array)return item 2 ;);alert(result);*/forEach :循环数组每一项的值 并执行一个方法 /*arr.forEach(function(item, index, array)alert(item););*/map 对于数组的每一个元素进行一个函数的运行 可以经过函数执行完毕后 把新的结果返回/*var result = arr.map(function(item, index, array)return item*2;);alert(result); */some :对于数组每一个元素进行一个函数的运行 如果有一项返回true 最后则返回true 如果每一项都返回false最后结果则返回false/*var result = arr.some(function(item, index, array)return item =5 ;);alert(result);*/reduce reduceRight/变量的起始位置不同 /前一个值 , 当前值 , 索引位置 , array/*var result = arr.reduce(function(prev , cur , index , array)return prev + cur ;);alert(result);*/*var result = arr.reduceRight(function(prev , cur , index , array)return prev + cur ;);alert(result);*/Untitled Document/Object 所有类的基础类 /var obj = new Object();var obj = ;/ 实例化对象/ 给对象设置属性 = 张3;obj.age = 20 ; /obj.sex = 男;objbirthday = 1980-08-07;obj.say = function()alert(hello world!);/ 访问对象的属性或方法/alert();/alert(obj.age);/obj.say();/ delete 操作符 删除对象的属性或方法的/*delete obj.age ;delete obj.say ;alert();alert(obj.age);alert(obj.sex);obj.say();*/ 如何去变量一个js对象 for in 语句式/*for(var attribute in obj) alert(attribute + : + objattribute);*/Constructor保存对象的创建函数/alert(obj.constructor);/var arr = ; /alert(arr.constructor);/hasOwnProperty(propertyName) 用于检测给定属性在对象中是否存在/alert(obj.hasOwnProperty(sex);/isPrototypeOf(Object) 检测原型 /检测给定的属性是否能被for in 所枚举出来 /alert(pertyIsEnumerable(say);Untitled Documentfunction Map()/ private var obj = ;/ 空的对象容器,承装键值对/ put 方法this.put = function(key , value)objkey = value ;/ 把键值对绑定到obj对象上/ size 方法 获得map容器的个数this.size = function()var count = 0 ; for(var attr in obj)count+;return count ; / get 方法 根据key 取得valuethis.get = function(key)if(objkey | objkey = 0 | objkey = false)return objkey; else return null;/remove 删除方法this.remove = function(key)if(objkey | objkey = 0 | objkey = false)delete objkey;/ eachMap 变量map容器的方法this.eachMap = function(fn)for(var attr in obj)fn(attr, objattr);/模拟java里的Mapvar m = new Map();m.put(01 , abc);m.put(02 , false) ;m.put(03 , true);m.put(04 , new Date();/alert(m.size();/alert(m.get(02);/m.remove(03);/alert(m.get(03);m.eachMap(function(key , value) alert(key + :+ value););Untitled Documentvar arr = 2,1,2,10,2,3,5,5,1,10,13;/object/ js对象的特性 : 在js对象中 key 是永远不会重复的 /*var obj = new Object(); = z3;obj.age = 20 ;/alert(); = w5;alert();*/ 1 把数组转成一个js的对象/ 2 把数组中的值,变成js对象当中的key/ 3 把这个对象 再还原成数组/ 把数组转成对象function toObject(arr)var obj = ; / 私有的对象var j ;for(var i=0 , j= arr.length ; ij; i+)objarri = true ;return obj ;/ 把这个对象转成数组function keys(obj)var arr = ; / 私有对象for(var attr in obj)if(obj.hasOwnProperty(attr)/YUI底层代码arr.push(attr);return arr ;/综合的方法 去掉数组中的重复项function uniq(newarr)return keys(toObject(newarr);alert(uniq(arr);Untitled Document/*/Global 全局的 终极的 兜底的对象 (不存在的)var uri = cn;/encodeURI 、encodeURIComponentvar str1 = encodeURI(uri); / %20/ (url : / 不会进行编码)var str2 = encodeURIComponent(uri);/常用的方法 (任何不标准的文字都会进行编码)/alert(str1);/alert(str2);/decodeURI、decodeURIComponent/alert(decodeURI(str1);/alert(decodeURIComponent(str2);*/*/eval(string) 方法 无形的javascript解析器/var str1 = var a = 10 ; var b = 20;/eval(str1);/alert(a+b);/ 数组字符串 直接使用: eval(stringarr);/ name:z3 , age:20var strobj = name:z3 , age:20;var obj = eval(+strobj+);alert();*/parseInt parseFloat /*var num1 = parseInt(20);var num2 = parseFloat(20.5);alert(num1 + + num2);alert(typeof num1);alert(typeof num2);*/escape unescape URI/*var str1 = 尚学堂;var str2 = escape(str1);alert(str2);var str3 = unescape(str2);alert(str3);*/*/isNaN / 如果不是number类型 true 是number类型 falsevar num1 = 10;var num2 = abcd10e;alert(isNaN(num2);/在js里面 只有NaN 自己不等于自己本身的if(NaN = NaN)alert(相等); else alert(不等)*/*/Date 日期类型var date = new Date();/alert(date);var year = date.getFullYear();var month = date.getMonth() + 1 ; var da = date.getDate();var day = date.getDay();var hours = date.getHours();var min = date.getMinutes();var sc = date.getSeconds();document.write(今天是 + year + 年 + month + 月 + da+ 日 + hours +: + min +: +sc+ 星期 +day );document.write(n + date.getTime();*/Untitled Document/简单的一个函数: function关键字+函数的名字 (没有返回值类型) /参数列表相当于函数的入口, return 相当于函数的出口/*function test(a ,b)/alert(a+b);/alert(111);return a+b;var c = test(10 , 20);/alert(c);alert(typeof test);/函数也是一种数据类型 (function类型)*/function test1(aa)aa();function test2()alert(执行啦);test1(function() alert(我也执行啦!);/ 在js中函数是可以嵌套定义的 (尽量不要这样去定义)function test3()function test4()alert(我是test4!);test4();test3();Untitled Document/ 3种方式定义函数 /*/ 1 function语句式function test1()alert(我是test1);/test1();/ 2函数的直接量 ECMAScriptvar test2 = function()alert(我是test2);/test2();/ 3function构造函数式var test3 = new Function(a , b ,return a+b;);/alert(test3(10,20);*/效率对比/*var d1 = new Date();var t1 = d1.getTime();for(var i =0 ; i 100000;i+)/function test1();/function语句的形式var test2 = new Function();var d2 = new Date();var t2 = d2.getTime();alert(t2 -t1); */ 解析顺序问题 对于function语句式的函数,javascript解析器会优先的解释/*test1();function test1()alert(1111);*/alert(test2); /表示变量声明了 但是没有被赋值/test2();/*var test2 = function()alert(2222);*/*/ 4 2 3 3 5 6function f()return 1; / 函数1 alert(f();/返回值为4 说明第1个函数被第4个函数覆盖var f = new Function(return 2;);/ 函数2 alert(f();/返回值为2 说明第4个函数被第2个函数覆盖var f = function()return 3;/ 函数3 alert(f(); /返回值为3 说明第2个函数被第3个函数覆盖function f()return 4; / 函数4 aler
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- DB41T29042025地表水重金属(电感耦合等离子体质谱法)在线监测系统技术规范
- 2025保健酒业考试真题及答案
- 2025宝鸡科三考试真题及答案
- 安全知识考试题(建筑安全应急物资使用)
- 产教融合视角下高职校企合作模式创新与实践
- 下肢功能恢复机器人设计-洞察与解读
- 安全培训形式创新课件
- 2025年湖南事业单位真题
- 2025安徽小升初考试真题及答案
- 2025年水表知识培训题库及答案
- 餐饮门迎培训课件
- 基孔肯雅热主题班会课件
- 麻醉恢复室护理要点
- 心力衰竭的全程管理
- DB4201∕T 630.1-2020 中小学生研学旅行 第1部分:服务机构评定与服务规范
- 初中英语英语3500个单词分类大全
- 数学评比活动方案
- 三年级上册《快乐读书吧》阅读练习题
- TCPUMT 034-2025 工业数字孪生 数字模型与数据集成交换要求
- 2025年餐饮外卖行业绿色包装解决方案及市场前景研究报告
- 曹植的故事课件小学生
评论
0/150
提交评论