二、javaScript
基本概念
- JavaScript是现在网络上比较流行的一种脚本语言,通过javaScript可以让用户与Web 站点之间增强交互
- JavaScript可以被所有Web浏览器解析。
- 脚本语言叫做动态语言,它是一种解释型语言,它一般由文本编辑器编辑。脚本语言,一 它不能单独运行,需要嵌入到其它语言中,例如:javaScript, 我们可以将编写的javaScript嵌入到HTML代 码中,由浏览器解析执行它
使用场景
- 数据可视化
数据可视化是当下大家所推崇的一种互动展示模式,而JavaScript拥有ECharts、D3.js等多种可实现数据可视化效果的框架 - 移动应用
PhoneGap将WebVieW带向了移动应用,同时也将JavaScript带向了移动应用 - 服务端
因为V8的性能将JavaScript带到了一个新的高度,于是Node.js诞生了——前端、后台都可以用JavaScript,现 在任何一个网页都离不开JavaScript - VR
利用3D游戏引擎,如Three.js - 游戏
JavaScript也可以做出华丽的特效
JavaScript的组成
- ECMAScript:描述了该语言的语法、语句和基本对象 (核心)
- BOM:浏览器对象. 描述处理网页内容的方法和接口 (浏览器对象模型)
- DOM:Document Object Model.操作文档中的元素和内容 (文档对象模型)
JavaScript的引入
-
在HTML文件中引入JavaScript有两种方式
- 一种是在HTML文档直接嵌入JavaScript脚本,称为内嵌式
- 另一种是 链接外部JavaScript脚本文件,称为外联式
-
对他们的具体讲解如下:
-
内嵌式,在HTML文档中,通过script标签引入
基本语法
<script type="text/javascript"> //此处为JavaScript代码 </script>
-
外联式,在HTML文档中,通过script标签引入.js文件
基本语法
<script src="1.js" type="text/javascript" ></script>
-
基本语法
变量
-
在使用JavaScript时,需要遵循以下命名规范:
- 变量名必须以字母或下划线开头,数字不能开头
- 变量名不能包含特殊符号 (如:空格等符号 )
- 变量名不能使用JavaScript关键字作为变量名,如:function
- JavaScript严格区分大小写
-
变量声明
var 变量名; //JavaScript变量可以不声明,直接使用。默认值:undefined
-
变量赋值
var 变量名 = 值; //JavaScript变量是弱类型,及同一个变量可以存放不同类型的数据
数据类型
-
关键字:typeof 可以查看变量的数据类型
-
基本类型
- undefined, undefined类型只有一个值,即 undefined。当声明的变量未初始化时,该变量的默认值是 undefined
- boolean,有两个值 true 和 false
- number,表示任意数字
- string,字符串由双引号(")或单引号(’)声明的
- JavaScript 没有字符类型
-
引用类型
- 引用类型通常叫做类(class),也就是说,遇到引用值,所处理的就是对象。
- JavaScript是基于对象而不是面向对象。
- JavaScript提供众多预定义引用类型(内置对象)
造一个对象:var obj = new Object(); 造一个字符串对象:var str = new String(); 造一个日期对象:var date = new Date();
-
注意事项
- js属于弱语法类型,即不用特别规范也不会报错,如定义变量不写var也不报错
- js也属于弱数据类型,var代表通用类型,当赋值后才确定数据类型
- null属于object类型
运算符
-
JavaScript运算符与Java运算符基本一致
-
算术运算符
如果有字符串数值参与加法运算,则为字符串拼接
如果字符串数值参与减法运算,则将字符串数值转为数值类型,再参与减法运算
运算符 描述 例子(y=5) 结果 + 加 x=y+2 7 - 减 x=y-2 3 * 乘 x=y*2 10 / 除 x=y/2 2.5 % 取余(保留整数) x=y%2 1 ++ 累加 x=++y 6 – 累减 x=–y 4 -
赋值运算符
如果有字符串数值参与加等于运算,则为字符串拼接
如果有字符串数值参与减等于运算,则将字符串转为数值类型,再参与运算
运算符 描述 例子(x=2, y=5) 结果 = 赋值等于 x=y 5 += 加等于 x+=y 7 -= 减等于 y-=x 3 *= 乘等于 x*=y 10 /= 除等于 x=y%2 2.5 %= 取余等于 x%=y 2 -
比较运算符
== 只比较内容,不比较类型
=== 既比较内容,也比较类型
> 、< 等中字符串和数值的比较,会将字符串转为数值类型,再比较
运算符 描述 例子(x=2) == 等于 x==2 false === 全等于(值和类型) x===5 true;x==="5” false != 不等于 x!=2 true > 大于 x>2 true < 小于 x < 2 false >= 小于等于 x>=5 true <= 大于等于 x<=5 true -
逻辑运算符
运算符 描述 例子(x=1, y=2) && and x<2 && y>1 true || or x>1 || y=2 true ! not !(x==2) true -
运算符操作
JavaScript规范规定以下操作规则boolean运算(在if等条件语句中使用时)
参数类型 结果 Undefined false Null false Boolean 结果等于输入的参数 Number 如果参数为+0,-0或NaN则结果为false,否则true String 如果字符串为空字符串,则为false,否则true Object true
JS中的语句
-
跟java一样,js也存在if、if-else、for、switch等逻辑语句,与java使用方式一致
<script type="text/javascript"> for (var i=0; i<10; i++) { //alert(i); } //定义数组 var arr = [1,2,3,5.5,true,"hello"]; //普通for遍历数组 /*for(var i=0; i<arr.length; i++){ alert(arr[i]); }*/ //加强for循环 for(index in arr){ alert(arr[index]); } for(element of arr){ alert(element) } </script>
函数
-
js的函数是js非常重要的组成部分,js常用的函数的定义方式有两种
-
普通函数
//定义函数 function 函数名(参数列表){ js逻辑代码; //return 返回值; // 若不需要返回值可以省略return } // 函数调用格式: // 函数名(实际参数);
//定义函数: function add(a,b){ alert(a+b); } //执行函数: add(3,5); //执行结果:8
-
匿名函数
//定义匿名函数也就是没有名字的函数 function(参数列表){ js逻辑代码; }
匿名函数没有办法直接调用,一般情况下匿名函数有两种使用场景:
将匿名函数赋值给一个变量,使用变量调用函数//定义函数并赋值给变量: var fn = function(参数列表){ js逻辑代码 } //调用函数:fn(实际参数);
事件
-
js的事件是js不可或缺的组成部分,要学习js的事件,必须要理解如下几个概念:
- 事件源:被监听的html元素
- 事件:某类动作,例如点击事件,移入移除事件,敲击键盘事件等
- 事件与事件源的绑定:在事件源上注册上某事件
- 事件触发后的响应行为:事件触发后需要执行的代码,一般使用函数进行封装
-
常用事件
事件名 描述 onload 某个页面或图像被完成加载 onsubmit 当表单提交时触发该事件—注意事件源是表单form onclick 鼠标点击某个对象 ondblclick 鼠标双击某个对象 onblur 元素失去焦点 onfocus 元素获得焦点 onchange 用户改变域的内容 onkeydown 某个键盘的键被按下 onkeypress 某个键盘的键被按下或按住 onkeyup 某个键盘的键被松开 onmousedown 某个鼠标按键被按下 onmouseup 某个鼠标按键被松开 onmouseover 鼠标被移到某元素之上 onmouseout 鼠标从某元素移开 onmousemove 鼠标被移动 -
事件绑定函数
给页面上的标签添加一个事件,关联一个函数。当我们操作这个标签时,javaScript就会侦听到对应的事件发生,从而执行关联的函数我们称为事件绑定函数
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <script> /* 事件介绍: window.onload 页面加载函数,当整个html页面加载完毕之后执行该该事件关联的函数. onload 某个页面或图像被完成加载 onsubmit 当表单提交时触发该事件---注意事件源是表单form 需求描述: 1.页面加载完毕执行函数 2.body加载完毕,执行函数 3.提交表单事件 */ //1.页面加载完毕执行函数 // window.onload = function(){ // alert("整个html已经加载完毕..."); // } // 2.body加载完毕,执行函数 //function load(){ // alert("body内容已经加载完毕."); //} //3.提交表单事件 function validate(){ //可以在该方法中验证用户在表单输入的数据是否合理,如果合理返回true,如果不合理返回false,不让表单提交. return ture; } </script> </head> <body onload="load()"> <form action="demo1-js入门.html" onsubmit="return validate()"> 用户名<input type="text" name="username" /> <br> <input type="submit" /> </form> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> div { border : 1px solid red; width: 200px; height: 200px; } </style> <script> /* 事件介绍: onclick 鼠标点击某个对象 ondblclick 鼠标双击某个对象 onblur 元素失去焦点 onfocus 元素获得焦点 onchange 用户改变域的内容 onmouseenter 某个鼠标进入 onmousedown 某个鼠标按键被按下 onmouseup 某个鼠标按键被松开 onmouseout 鼠标从某元素移开 需求: 1.在页面上给定2个按钮,第一个按钮绑定单击事件; 第二个按钮绑定双击事件 (关联函数) 2.在页面上写一个input type=text 文本框; 绑定一个 光标失去事件 3.在页面上写一个input type=text 文本框; 绑定一个 获取光标事件 4.编写一个下拉框,绑定一个 onchange 内容改变事件 5.写div ,设置宽度和高度边框; onmouseenter 鼠标进入事件 ; onmousedown 某个鼠标按键被按下 ; onmouseup 某个鼠标按键被松开 ; onmouseout 鼠标从某元素移开 */ //1.在页面上给定2个按钮,第一个按钮绑定单击事件; 第二个按钮绑定双击事件 (关联函数) function fun1(){ alert("你单击我了..."); } function fun2(){ alert("你双击我了..."); } //2.在页面上写一个input type=text 文本框; 绑定一个 光标失去事件 function fun3(){ alert("失去了光标..."); } //3.在页面上写一个input type=text 文本框; 绑定一个 获取光标事件 function fun4(){ alert("获取了光标..."); } //4.编写一个下拉框,绑定一个 onchange 内容改变事件 function fun5(){ alert("城市改变了.."); } //5.写div ,设置宽度和高度边框; onmouseenter 鼠标进入事件 ; onmousedown 某个鼠标按键被按下 ; //onmouseup 某个鼠标按键被松开 ; onmouseout 鼠标从某元素移开 function enter(){ //当鼠标进入,div的背景色变为黄色 document.getElementById("mydiv").style.backgroundColor="yellow"; } function down(){ //当鼠按下,div的背景色变为绿色 document.getElementById("mydiv").style.backgroundColor="green"; } function up(){ //当鼠抬起来,div的背景色变为红色 document.getElementById("mydiv").style.backgroundColor="red"; } function out(){ //当鼠移出,div的背景色变为blue document.getElementById("mydiv").style.backgroundColor="blue"; } </script> </head> <body> <form action="demo1-js入门.html"> <input type="button" value="单击我" onclick="fun1()"><br> <input type="button" value="双击我" ondblclick="fun2()"><br> <input type="text" name="username" placeholder="将要失去光标" onblur="fun3()"><br> <input type="text" name="age" placeholder="将要获取光标" onfocus="fun4()"><br> <select name="city" onchange="fun5()"> <option value="beijing">北京</option> <option value="shanghai">上海</option> <option value="shenzhen">深圳</option> </select><br> </form> <div id="mydiv" onmouseenter="enter()" onmousedown="down()" onmouseup="up()" onmouseout="out()"></div> </body> </html>
-
派发事件
不修改html, 通过js方式获取到一个html中的元素对象,并且给它动态的设置一个事件并关联一个函数.我们称为事件派发.
派发的优点是:不污染原来的html代码;
缺点:需要页面内容加载完毕在可以使用,一般写在页面加载函数
注意事项:如果是派发事件,js代码如果要写在html代码上面,需要写页面加载函数中才可以执行.
或者js代码直接写html下方<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>事件派发</title> <script> /* 创建一个按钮,给按钮一个id,使用事件派发的方式给按钮派发一个单击事件,关联一个函数. 页面加载函数: window.onload = function(){ 整个页面加载完毕之后执行的内容... } 注意事项: 如果是派发事件,js代码如果要写在html代码上面,需要写页面加载函数中才可以执行. 或者js代码直接写html下方. */ window.onload = function(){ document.getElementById("btn").onclick = function(){ alert("单击事件执行..."); } } </script> </head> <body> <input type="button" value="按钮" id="btn"> </body> <!-- <script> document.getElementById("btn").onclick = function(){ alert("单击事件执行..."); } </script> --> </html>
BOM对象
基本概念
-
BOM(Browser Object Model),浏览器对象模型(将客户端的浏览器抽象成一类对象),是将我们使用的浏览器抽象成对象模型,例如我们打开一个浏览器,会呈现出页面,通过js提供浏览器对象模型对象我们可以模拟浏览器功能。
-
例如,在浏览器地址栏输入地址,敲击回车这个过程,我们可以使用location对象进行模拟。
-
例如,浏览器中的 前进和后退按钮,我们可以使用history对象模拟
js的BOM对象
- Screen对象,Screen 对象中存放着有关显示浏览器屏幕的信息
- Navigator对象,包含的属性描述了正在使用的浏览器
- Window对象(重点),Window 对象表示一个浏览器窗口或一个框架
- History对象,其实就是来保存浏览器历史记录信息
- Location对象(重点),Location 对象是 Window 对象的一个部分,可通过 window.location 属性来访问,完成跳转
Window对象
- Window对象此处学习它的三个作用
- 获取文档对象document
- 弹框的方法
- 定时器
- 凡是window对象的属性和方法,都可以省略window不写
弹框的方法
-
提示框:alert(提示信息);
-
确认框:confirm(提示信息);
-
输入框:prompt(提示信息);
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>window的弹出框</title> <script> //window.alert("这是警告框"); // 如果用户点击了确认,返回true; 如果用户点击取消,返回false; //var flag = confirm("您确认删除吗?"); //alert(flag); var result = prompt("请输入您的用户名"); alert(result); </script> </head> <body> </body> </html>
定时器
- setInterval((js代码/函数,毫秒值); 反复执行的定时器
- clearInterval(定时器的id值);取消反复执行的定时器
- setTimeout(js代码/函数,毫秒值); 执行一次的定时器
- clearTimeout(定时器的id值);取消执行一次的定时器
周期执行任务
-
代码演示
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>周期定时任务</title> <script> /* 1.方法1: 周期执行任务方法 setInterval(js脚本片段/函数,毫秒值); 2.方法2: 取消周期执行任务 clearInterval(周期执行任务id); */ //window.setInterval("alert('hello')",2000); function fun(){ alert("hello 拉勾"); } var resultId = setInterval("fun()",2000); //该方法运行可以停止周期执行任务 function stopInterval(){ clearInterval(resultId); } </script> </head> <body> <input type="button" value="停止周期执行任务" onclick="stopInterval()"> </body> </html>
定时执行任务
-
代码演示
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>定时函数</title> <script> /* 1. setTimeout(js代码/函数,毫秒值); 执行一次的定时器 2. clearTimeout(定时器的id值);取消执行一次的定时器 */ //setTimeout("alert('你好啊')",3000); function fun(){ alert("欢迎大家"); } var resultId = setTimeout("fun()",2000); //取消定时任务 function stopTimeOut(){ clearTimeout(resultId); } </script> </head> <body> <input type="button" value="取消定时任务" onclick="stopTimeOut()"> </body> </html>
常用的全局方法
-
内置函数的重要转换: 字符串转成数字
parseInt(被转换的内容) 将字符串数值变为number类型
parseFloat(被转换的内容) 将字符串数值变为number类型
-
代码举例
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>全局转换方法</title> <script> //var num1 = 100; //var num2 = "200"; //计算num1和num2的和. //var result = num1 + num2; //alert(result); //var result2 = num1 + parseInt(num2); //alert(result2); var n1 = 11.15; var n2 = "11.15"; var result = n1 + n2; alert(result); var result2 = n1 + parseFloat(n2); alert(result2); </script> </head> <body> </body> </html>
Location对象
-
location.href 可以在js中进行url访问,完成页面的跳转
-
location.href 属性相当于在浏览器的地址栏中输入地址并敲回车
-
location.reload() 方法让页面重新加载(刷新页面)
-
代码演示
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>location对象</title> <script> /* location对象: 记录了当前的URL信息 属性: href : 完成一个地址的跳转 方法: reload() ; 重新加载页面,刷新. 补充: 页面跳转的方式: 1) 超链接跳转 <a href="URL地址"></a> 2) 提交表单 form action="URL地址" 3) location.href="URL地址" */ function goTo(){ location.href="demo1-js入门.html"; } //重新加载页面方法 function reflesh(){ location.reload(); } </script> </head> <body> <input type="button" value="页面跳转" onclick="goTo()"> <br/> <input type="button" value="重新加载页面" onclick="reflesh()"> </body> </html>
DOM对象
基本概念
-
DOM(Document Object Model) 文档对象模型,定义访问和操作结构化文档(HTML)的方式
- 创建的结构化文档:html、xml 等
- DOM包括:核心DOM、HTML DOM、XML DOM
- 通常情况下HTML DOM 和XML DOM是可以相互使用的
-
HTML DOM 将整个HTML文档呈现成一颗DOM树,树中有元素、属性、文本等成员
document 文档对象
- 浏览器加载整个HTML文档形成Document 对象,Document 对象可以访问和操作HTML文档中的所有元素,对其进行增删改操作
- 文档树的分类
- 标签元素
- 属性元素
- 文本元素
获得元素对象
-
方式
获取标签元素方法 描述 document.getElelentById(“id值”) 获取id为xx的是元素节点 document.getElementsByName(“name名称”) 获取多个元素的节点,通过name属性值 document.getElelmetsByClassName(“class名称”) 根据class名字获取多个节点 document.getElementsByTagName(“标签名称”) 根据标签名获取多个元素 -
代码演示
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>获取元素</title> <script> // 1.定义一个button ,给设置value,也给id; 通过document.getElelentById("id值") 获取的是元素节点 , 及按钮的value值,打印 function getElement(){ var element = document.getElementById("btn"); //alert(element); // [object HTMLInputElement] alert(element.value); } // 2.定义2一个input框,设置name属性值一致,获取2个input框元素,打印里面的值 function getElements(){ var elements = document.getElementsByName("myname"); //alert(elements.length); for(var i=0; i < elements.length; i++){ alert(elements[i].value); } } // 3.定义2个input框,设置class属性值一致,getElelmetsByClassName("class名称"); 获取里面的值,打印 function getClassElements(){ var elements = document.getElementsByClassName("cls"); for(var i=0; i < elements.length; i++){ alert(elements[i].value); } } // 4.获取所有的input ,打印里面的值 ,通过getElementsByTagName("标签名称")获取. function getTagElements(){ var elements = document.getElementsByTagName("input") for(var i=0; i < elements.length; i++){ alert(elements[i].value); } } </script> </head> <body> <input type="button" value="我的按钮123" id="btn"> <br> <br> 根据name属性获取元素:<input type="text" name="myname" value="我的值1"> <br> 根据name属性获取元素:<input type="text" name="myname" value="我的值2"> <br> <br> 根据class属性获取元素:<input type="text" class="cls" value="我的值3"> <br> 根据class属性获取元素:<input type="text" class="cls" value="我的值4"> <br> <br> 根据标签获取元素:<input type="text" value="我的值5"> <br> 根据标签获取元素:<input type="text" value="我的值6"> <br> <hr> <input type="button" value="点击按钮获取value值" onclick="getElement()"> <input type="button" value="根据name获取对应元素及value值" onclick="getElements()"> <input type="button" value="根据class获取对应元素及value值" onclick="getClassElements()"> <input type="button" value="根据TagName获取对应元素及value值" onclick="getTagElements()"> </body> </html>
操作标签体内容
-
方式
语法 描述 对象名.innerHTML = 标签体; 设置标签体html(也可以设置文本) 对象名.innerHTML 获取标签体html 对象名.innerText = 文本内容; 设置标签体文本 对象名.innerText 获取标签体文本 -
代码演示
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>设置标签体内容</title> <script> // 定义一个p段落标签,<font color='red'>我的字体</font> // 1.使用innserHTML 获取P标签体中间的内容; function fun1(){ //1.获取到p标签 var pElement = document.getElementById("pid"); //2.pElement.innerHTML alert(pElement.innerHTML);// <font color="red">我的字体</font> } // 2.使用innerText获取P标签中间的内容 function fun2(){ //1.获取到p标签 var pElement = document.getElementById("pid"); //2.pElement.innerText alert(pElement.innerText); // 我的字体 } // 3.使用innerHTML,给P标签中设置内容(带html) function fun3(){ //1.获取到p标签 var pElement = document.getElementById("pid"); pElement.innerHTML = "<font size='20px' color='blue'>我的新字体内容</font>" } // 4.使用innerText,给P标签设置文本 function fun4(){ //1.获取到p标签 var pElement = document.getElementById("pid"); pElement.innerText = "<font size='20px' color='blue'>我的新字体内容</font>" } </script> </head> <body> <p id="pid"> <font color="red">我的字体</font> </p> <hr> <input type="button" value="使用innserHTML 获取P标签体中间的内容" onclick="fun1()"> <input type="button" value="使用innerText获取P标签中间的内容" onclick="fun2()"> <input type="button" value="使用innerHTML,给P标签中设置内容(带html)" onclick="fun3()"> <input type="button" value="使用innerText,给P标签设置文本" onclick="fun4()"> </body> </html>
属性的操作
- 方式
方法 | 描述 |
---|---|
getAtrribute(name) | 获得属性的值 |
setAtrribute(name,value) | 设置属性的值 |
removeAtrribute(name) | 删除某个属性 |
-
代码演示
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>属性操作</title> <script> // 定义一个input框, name属性值 value属性值 // 1.点击按钮,使用getAtrribute(name) 获取name属性值和value属性值 function fun1(){ var inputElement = document.getElementById("inputId"); var nameVal = inputElement.getAttribute("name"); var val = inputElement.getAttribute("value"); alert("name = "+ nameVal + " , value = "+val); } // 2.点击按钮,使用setAtrribute(name,value)给value修改内容 function fun2(){ var inputElement = document.getElementById("inputId"); inputElement.setAttribute("value","jack"); } // 3.点击按钮,使用removeAtrribute(name)删除value值 function fun3(){ var inputElement = document.getElementById("inputId"); inputElement.removeAttribute("value"); } </script> </head> <body> <input type="text" name="username" value="tom" id="inputId" /> <hr> <input type="button" value="获取name属性值和value属性值" onclick="fun1()"> <input type="button" value="使用setAtrribute(name,value)给value修改内容" onclick="fun2()"> <input type="button" value="使用removeAtrribute(name)删除value值" onclick="fun3()"> </body> </html>
JavaScript内置对象
- JS的对象也分为内置对象和定义对象 例如: String 、 Array 、 Date 、Math、Random
JS内置对象 String
-
String 对象用于处理文本(字符串)
-
String 对象属性
- length 字符串的长度
-
String 对象方法
方法 描述 charAt(x) 返回在指定位置的字符 indexOf(x) 检索字符串 lastIndexOf(x) 从后向前搜索字符串 split(x) 把字符串分割为字符串数组 substring(开始索引,结尾索引) 获取两个索引之间的字符,包含头,不包含尾 substr(开始索引) 获取的是开始索引到结尾之间的字符 substr(开始索引,字符个数) 从开始索引开始,获取指定个数个字 -
代码演示
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>String对象</title> <script> /* 1.String对象如何创建 2.String对象的属性 length 长度 3.String对象的方法 */ //1.String对象如何创建 //var str = "abc"; //var str1 = new String("abcdef"); // alert(str); // alert(typeof str); //string // alert(str1); // alert(typeof str1); //object //2.String对象的属性 //alert(str.length); //alert(str1.length); //3.String对象的方法 //var str = "abcdefghcba"; // charAt(x) 返回在指定位置的字符 //alert(str.charAt(1)); // b // indexOf(x) 检索字符串 //alert(str.indexOf("cde")); //2 //alert(str.indexOf("b")); //1 // lastIndexOf(x) 从后向前搜索字符串。 //alert(str.lastIndexOf("b")); //9 // split(x) 把字符串分割为字符串数组。 //var str = "aa,bb,cc,dd,ee"; //var strArr = str.split(","); //alert(strArr); //alert(strArr[1]); //for(var i = 0; i < strArr.length ;i++){ // alert(strArr[i]); //} // substring(开始索引,结尾索引) 获取两个索引之间的字符,包含头,不包含尾 var str = "abcdefg"; //var result = str.substring(1,3); //bc //alert(result); // substr(开始索引) 获取的是开始索引到结尾之间的字符 //var result = str.substr(3) ; //defg //alert(result); // substr(开始索引,字符个数) 从开始索引开始,获取指定个数个字符 var result = str.substr(2,3); //cde alert(result); </script> </head> <body> </body> </html>
JS内置对象 Array
-
Array 对象,就是JS数组,用于存储多个值,存储的元素类型可以是任意类型
-
创建 Array 对象的语法
new Array(); new Array(size); new Array(element0, element0, ..., elementn);
-
参数
- 参数 size 是期望的数组元素个数。返回的数组,length 字段将被设为 size 的值
- 参数 element …, elementn 是参数列表。当使用这些参数来调用构造函数
- Array() 时,新创建的数组的元素就会被 初始化为这些值。它的 length 字段也会被设置为参数的个数
-
Array 对象属性
- length 设置或返回数组中元素的数目
-
Array数组的特性
- js中数组没有下标越界异常
- js中数组的长度是不固定的,如果超出范围,则自动扩充
- js中数组元素的类型是可以多种的
-
代码演示
<script type="text/javascript"> //定义数组对象 var arr1 = new Array(); //赋值元素 arr1[0] = 1; arr1[1] = "a"; arr1[2] = 2.2; alert(arr1); //定义数组对象 var arr2 = new Array(3); //打印数组长度 alert(arr2.length); //定义数组对象 var arr3 = new Array(3,4,5,"a",true); alert(arr3); //开发中常用方式 var arr4 = [1,2,3,4,"a","b","c"]; for(var i = 0 ; i< arr4.length;i++){ alert(arr4[i]); } //定义二位数组 var arr5 = [ [1,2,3],["a",4,"b"],[true,5,false] ]; //打印3 alert(arr5[0][2]); //打印a alert(arr5[1][0]); //打印false alert(arr5[2][2]); </script>
案例–轮播图
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
#img_id {
width: 880px;
}
div {
margin-top: 150px;
margin-left: 250px;
}
</style>
</head>
<body>
<!-- 思路分析:
1.创建页面内容
创建一个div ,div中包含了3个图片
2.设置div 3个图片的样式
3.编写js让图片滚动起来
准备工作:
1.jpg 2.jpg 3.jpg left.png right.png
-->
<div>
<img src="img/left.png" onclick="pre()" style="width: 70px; vertical-align: middle; margin-top: -300px;">
<img src="img/1.jpg" id="img_id">
<img src="img/right.png" onclick="next()" style="width: 70px; vertical-align: middle; margin-top: -300px">
</div>
</body>
<script>
//1.定义一个记录图片值的变量 count
var count = 1;
//2.编写pre()方法,切换到前一张图片
function pre(){
count--;
if(count <=0){
count = 3;
}
//设置图片的src属性,更变图片
document.getElementById("img_id").src="./img/"+count+".jpg";
}
//3.编写next()方法,切换到下一张图片
function next(){
count++;
if(count > 3){
count = 1;
}
//设置图片的src属性,更变图片
document.getElementById("img_id").src="./img/"+count+".jpg";
}
//设置周期执行函数
window.setInterval(next,2000);
</script>
</html>
注:本内容为个人拉勾教育大数据训练营课程笔记