/** * JavaScript简介 */ 一种动态类型、弱类型、基于原型的语言 常用来为网页添加各式各样的动态功能 为用户提供更流畅美观的浏览效果 /** * 特点 */ 解释性脚本语言(代码不进行预编译) 主要用来向HTML页面添加交互行为 可以直接嵌入HTML页面 跨平台特性,在浏览器的支持下,可以在多种平台下运行 /** * 演变历史 */ 1992年,Nombas公司开发出C--嵌入式脚本语言,后改名为ScriptEase,跟C++没有半毛钱关系,创新性地支持客户端执行 Netscape公司吸收了Nombas的开发理念,Brendan Eich设计研发liveScript,后与Sun公司合作更名为JavaScript Windows公司不要脸的窃取JavaScript嵌入到IE,对外声称Jscript,页游方面称为ActionScript ECMA组织提出ECMA-262规范,统一三家JavaScript,史称ECMAScript /** * JavaScript的组成部分 */ ECMAScript 核心 DOM 文档对象模型 BOM 浏览器对象模型 /** * Script结合方式一 */ <script type="text/javascript"> </script> /** * Script结合方式二 */ <script type="text/javascript" src="../js/index.js"></script> /** * JavaScript语法 */ 1)弱变量类型的语言 2)没有文档注释 3)带var声明表示局部变量,不带var声明表示全局变量 4)一个var允许声明多个变量,逗号分隔 5)建议每句以分号结束,允许不加分号 6)变量的书写区分大小写 var weMou = "nobody"; weMOu = 666; weMou = true; /** * 变量分类 */ 原始类型 ~ Java中的基本数据类型 对象类型 ~ Java中的引用数据类型 /** * 堆内存和栈内存 */ 栈内存特别小,存放所有的引用地址,和原始类型的值 堆内存相对大,存放对象类型的值 /** * js中的原始类型 */ 1) number 数字 2) string 字符串 3) boolean 布尔值 4) null 手动置空对象,对象数据类型的占位符 5) undefined 变量未初始化 /** * typeof */ 返回原始类型数据的数据类型 /** * js语句 */ 1)判断 if else switch 2)循环 for while do do while /** * js中的运算 */ NaN not a number 表示错误的数字,如:+"a" 2!=true null==false NaN!=NaN /** * 数据类型转换 */ js是弱类型的语言,js会在需要的时候,自动转换数据的类型 /** * Function对象 函数对象 */ function funWenHou(){ return "Hello Word"; } var funWenHou = function (){ return "Hello Word"; } var funWenHou = new Function ("return 'Hello Word';"); console.log(funWenHou()); console.log(funWenHou.toString()); /** * 属性和传参 */ function funWe() { console.log(this.length);//参数个数 console.log(arguments); //参数数组 } funWe("we","we","zhang"); /** * void() */ 拦截方法的返回值 function funWe() { return "wewezhang"; } javaScript: void(funWe("wewezhang")); /** * void(0) */ href = "javaScript:void(0)" src = "javaScript:void(0)" 阻止默认行为,阉割掉 /** * 三大包装对象 - String对象 */ java中有"自动拆装箱机制" js中有"伪对象"的概念,原始类型可以直接调用对应包装类型的属性和方法 //创建,构造方法具有强制类型转换的功能 var weString = new String(此处允许填任何类型数据); //属性 weString.length 字符串的长度 //方法,伪对象的方法 "helloWord".length "hello".charAt(0) 返回指定索引位置的字符 "hello".concat("Word") 拼接字符串 "helloWord".slice(0,5) 截取字符串 "helloWord".substring(0,5) 截取指定索引号间的字符串 "helloWord".indexof("a",0) 从某索引开始检索字符串 "helloWord".split("") 分割为字符串数组 "helloWord".replace() 替换匹配正则 /** * instanceof */ 判断对象数据的类型是否为某种类型 var str = new String("wewezhang"); if (str instanceof String) { } /** * Global对象 */ 不需要创建实例,即可直接调用全局属性和全局方法 encodeURI("") 用于对整体url编码,忽略特殊字符的编码 decodeURI("") 用于对整体url解码,忽略特殊字符的解码 encodeURIComponent("") 用于对url中的参数进行编码,同时会对特殊字符进行编码 decodeURIComponent("") 用于对url中的参数进行解码,同时会对特殊字符进行解码 parseInt("007") parseFloat("8.88") var x = parseInt("ax5"); if (isNaN(x)) { console.log("是NaN"); } else { console.log("不是NaN"); } eval("console.log('这也太神奇了')"); Math.abs(-123.321) 取绝对值 Math.round(123.321) 四舍五入 Math.ceil(123.321) 向上取整 Math.floor(123.321) 向下取整 Math.random() 随机数 /** * 数组Array对象 */ var weArray = [1,2,3]; var weArray = new Array(1,2,3); var weArray = new Array(8); //比较特殊,8表示数组长度 当参数只传递一个数字的时候,表示创建一个长度为数字的空数组 //压栈,按内容 var weArray = [1,2,3]; console.log(weArray); weArray.push(4); console.log(weArray); weArray.unshift(0); console.log(weArray); //弹栈,按序列号 var weArray = [0,1,2,3,4]; console.log(weArray); weArray.pop(4); console.log(weArray); weArray.shift(0); console.log(weArray); //reverse() 数组反转 var weArray = [0,1,2,3,4]; console.log(weArray); weArray.reverse(); console.log(weArray); //sort() 数组排序 var weArray = [1,3,1,8,4,1,5,2,8,9,1]; console.log(weArray); weArray.sort(function(weNum1,weNum2){return weNum1-weNum2}); console.log(weArray); weArray.sort(function(weNum1,weNum2){return weNum2-weNum1}); console.log(weArray); /** * Date */ var weDate = new Date(); var weDate = new Date(1490842239819); console.log(weDate.getFullYear()); console.log(weDate.getMonth()+1); console.log(weDate.getDate()); console.log(weDate.getHours()); console.log(weDate.getMinutes()); console.log(weDate.getSeconds()); console.log(weDate.getTime()); console.log(weDate.getDay()); /** * Window对象 */ 浏览器自动创建,不需要程序员管理 window.alert("弹出警告框"); window.confirm("你真狠心这么做吗?"); window.prompt("请输入口令:床前明月寄相思"); /** * 定时器 */ var oInterval = setInterval(function(){ alert("wewezhang"); },1000); clearInterval(oInterval); var oTimeout = setTimeout(function(){ alert("wewezhang"); },1000); clearTimeout(oTimeout); /** * 猜数字小游戏 */ function funTest(number){ var iMou = Math.round(Math.random()*100); iMou = number?number:iMou; var iInput = window.prompt("请输入0到100之间的整数", 0); if (isNaN(+iInput)) { alert("输入不合理,请重新输入数字 "+iMou); funTest(iMou); } else { if (+iInput==iMou) { window.confirm("恭喜你蒙对了,是否继续玩")?funTest():true; } else { if (+iInput>iMou) { alert("大了,请重新输入数字 "+iMou); } else { alert("小了,请重新输入数字 "+iMou); } funTest(iMou); } } } funTest();