简介:javascript
在JavaScript中除了null和undefined之外其余的数据类型都被定义成了对象,也能够用建立对象的方法定义变量,String、Math、Array、Date、RegExp都是JavaScript中重要的内置对象,在JavaScript程序大多数功能都是基于对象实现的。css
<script language="javascript"> var aa=Number.MAX_VALUE; //利用数字对象获取可表示最大数 var bb=new String("hello JavaScript"); //建立字符串对象 var cc=new Date(); //建立日期对象 var dd=new Array("星期一","星期二","星期三","星期四"); //数组对象 </script>
字符串建立(两种方式)
① 变量 = “字符串”
② 字串对象名称 = new String (字符串)html
1
2
|
var
str1=
"hello world"
;
var
str1=
new
String(
"hello word"
);
|
x.length ----获取字符串的长度 x.toLowerCase() ----转为小写 x.toUpperCase() ----转为大写
x.trim() ----去除字符串两边空格 ----字符串查询方法 x.charAt(index) ----str1.charAt(index);----获取指定位置字符,其中index为要获取的字符索引 x.indexOf(findstr,index)----查询字符串位置 x.lastIndexOf(findstr) x.match(regexp) ----match返回匹配字符串的数组,若是没有匹配则返回null x.search(regexp) ----search返回匹配字符串的首字符位置索引 示例: var str1="welcome to the world of JS!"; var str2=str1.match("world"); var str3=str1.search("world"); alert(str2[0]); // 结果为"world" alert(str3); // 结果为15 ----子字符串处理方法 x.substr(start, length) ----start表示开始位置,length表示截取长度 x.substring(start, end) ----end是结束位置 x.slice(start, end) ----切片操做字符串 示例: var str1="abcdefgh"; var str2=str1.slice(2,4); var str3=str1.slice(4); var str4=str1.slice(2,-1); var str5=str1.slice(-3,-1); alert(str2); //结果为"cd" alert(str3); //结果为"efgh" alert(str4); //结果为"cdefg" alert(str5); //结果为"fg" x.replace(findstr,tostr) ---- 字符串替换 x.split(); ----分割字符串 var str1="一,二,三,四,五,六,日"; var strArray=str1.split(","); alert(strArray[1]);//结果为"二" x.concat(addstr) ---- 拼接字符串
建立数组的三种方式:java
建立方式1: var arrname = [元素0,元素1,….]; // var arr=[1,2,3]; 建立方式2: var arrname = new Array(元素0,元素1,….); // var test=new Array(100,"a",true); 建立方式3: var arrname = new Array(长度); // 初始化数组对象: var cnweek=new Array(7); cnweek[0]="星期日"; cnweek[1]="星期一"; ... cnweek[6]="星期六";
建立二维数组:node
join方法:python
concat方法:数组
数组排序-reverse sort:浏览器
数组切片操做:app
删除子数组:dom
数组的push和pop:
数组的shift和unshift:
总结js的数组特性:
//方法1:不指定参数 var nowd1=new Date(); alert(nowd1.toLocaleString( )); //方法2:参数为日期字符串 var nowd2=new Date("2004/3/20 11:12"); alert(nowd2.toLocaleString( )); var nowd3=new Date("04/03/20 11:12"); alert(nowd3.toLocaleString( )); //方法3:参数为毫秒数 var nowd3=new Date(5000); alert(nowd3.toLocaleString( )); alert(nowd3.toUTCString()); //方法4:参数为年月日小时分钟秒毫秒 var nowd4=new Date(2004,2,20,11,12,0,300); alert(nowd4.toLocaleString( ));//毫秒并不直接显示
获取日期和时间 getDate() 获取日 getDay () 获取星期 getMonth () 获取月(0-11) getFullYear () 获取完全年份 getYear () 获取年 getHours () 获取小时 getMinutes () 获取分钟 getSeconds () 获取秒 getMilliseconds () 获取毫秒 getTime () 返回累计毫秒数(从1970/1/1午夜)
实例练习:
//该对象中的属性方法 和数学有关.
abs(x) 返回数的绝对值。 exp(x) 返回 e 的指数。 floor(x)对数进行下舍入。 log(x) 返回数的天然对数(底为e)。 max(x,y) 返回 x 和 y 中的最高值。 min(x,y) 返回 x 和 y 中的最低值。 pow(x,y) 返回 x 的 y 次幂。 random() 返回 0 ~ 1 之间的随机数。 round(x) 把数四舍五入为最接近的整数。 sin(x) 返回数的正弦。 sqrt(x) 返回数的平方根。 tan(x) 返回角的正切。 //方法练习: //alert(Math.random()); // 得到随机数 0~1 不包括1. //alert(Math.round(1.5)); // 四舍五入 //练习:获取1-100的随机整数,包括1和100 //var num=Math.random(); //num=num*10; //num=Math.round(num); //alert(num) //============max min========================= /* alert(Math.max(1,2));// 2 alert(Math.min(1,2));// 1 */ //-------------pow-------------------------------- alert(Math.pow(2,4));// pow 计算参数1 的参数2 次方.
1
2
3
|
function
函数名 (参数){
<br> 函数体;
return
返回值;
}
|
功能说明:
可使用变量、常量或表达式做为函数调用的参数
函数由关键字function定义
函数名的定义规则与标识符一致,大小写是敏感的
返回值必须使用return
Function 类能够表示开发者定义的任何函数。
用 Function 类直接建立函数的语法以下:
1
|
var
函数名 =
new
Function(
"参数1"
,
"参数n"
,
"function_body"
);
|
虽然因为字符串的关系,第二种形式写起来有些困难,但有助于理解函数只不过是一种引用类型,它们的行为与用 Function 类明确建立的函数行为是相同的。
示例:
注意:js的函数加载执行与python不一样,它是总体加载完才会执行,因此执行函数放在函数声明上面或下面均可以:
如前所述,函数属于引用类型,因此它们也有属性和方法。
好比,ECMAScript 定义的属性 length 声明了函数指望的参数个数。
1
|
alert(func1.length)
|
window对象
全部浏览器都支持 window 对象。
概念上讲.一个html文档对应一个window对象.
功能上讲: 控制浏览器窗口的.
使用上讲: window对象不须要建立对象,直接使用便可.
alert() 显示带有一段消息和一个确认按钮的警告框。 confirm() 显示带有一段消息以及确认按钮和取消按钮的对话框。 prompt() 显示可提示用户输入的对话框。 open() 打开一个新的浏览器窗口或查找一个已命名的窗口。 close() 关闭浏览器窗口。
setInterval() 按照指定的周期(以毫秒计)来调用函数或计算表达式。 clearInterval() 取消由 setInterval() 设置的 timeout。 setTimeout() 在指定的毫秒数后调用函数或计算表达式。 clearTimeout() 取消由 setTimeout() 方法设置的 timeout。 scrollTo() 把内容滚动到指定的坐标。
一、alert confirm prompt以及open函数
示例:
二、setInterval,clearInterval
setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。由 setInterval() 返回的 ID 值可用做 clearInterval() 方法的参数。
1
2
|
语法:<br> setInterval(code,millisec)
其中,code为要调用的函数或要执行的代码串。millisec周期性执行或调用 code 之间的时间间隔,以毫秒计。
|
示例:
画dom树是为了展现文档中各个对象之间的关系,用于对象的导航。
HTML 文档中的每一个成分都是一个节点。
DOM 是这样规定的:
整个文档是一个文档节点
每一个 HTML 标签是一个元素节点
包含在 HTML 元素中的文本是文本节点
每个 HTML 属性是一个属性节点
其中,document与element节点是重点。
节点树中的节点彼此拥有层级关系。
父(parent),子(child)和同胞(sibling)等术语用于描述这些关系。父节点拥有子节点。同级的子节点被称为同胞(兄弟或姐妹)。
下面的图片展现了节点树的一部分,以及节点之间的关系:
访问 HTML 元素(节点),访问 HTML 元素等同于访问节点,咱们可以以不一样的方式来访问 HTML 元素。
直接查找节点
1
2
3
4
|
document.getElementById(“idname”)
document.getElementsByTagName(“tagname”)
document.getElementsByName(“name”)
document.getElementsByClassName(“name”)
|
注意:设计到寻找元素,注意<script>标签的位置!
导航节点属性
'''
parentElement // 父节点标签元素
children // 全部子标签
firstElementChild // 第一个子标签元素
lastElementChild // 最后一个子标签元素
nextElementtSibling // 下一个兄弟标签元素
previousElementSibling // 上一个兄弟标签元素 '''
注意,js中没有办法找到全部的兄弟标签!
建立节点:
1
|
createElement(标签名) :建立一个指定名称的元素。
|
例:var tag=document.createElement(“input")
tag.setAttribute('type','text');
添加节点:
1
2
3
4
5
|
追加一个子节点(做为最后的子节点)
somenode.appendChild(newnode)
把增长的节点放到某个节点的前边
somenode.insertBefore(newnode,某个节点);
|
删除节点:
1
|
removeChild():得到要删除的元素,经过父元素调用删除
|
替换节点:
1
|
somenode.replaceChild(newnode, 某个节点);
|
节点属性操做:
一、获取文本节点的值:innerText innerHTML
二、attribute操做
elementNode.setAttribute(name,value) elementNode.getAttribute(属性名) <-------------->elementNode.属性名(DHTML) elementNode.removeAttribute(“属性名”);
三、value获取当前选中的value值
1.input
2.select (selectedIndex)
3.textarea
四、innerHTML 给节点添加html代码:
该方法不是w3c的标准,可是主流浏览器支持
tag.innerHTML = “<p>要显示内容</p>”;
五、关于class的操做:
1
2
3
|
elementNode.className
elementNode.classList.add
elementNode.classList.remove
|
六、改变css样式:
1
2
3
|
<p
id
=
"p2"
>Hello world!<
/
p>
document.getElementById(
"p2"
).style.color
=
"blue"
;
.style.fontSize
=
48px
|
onclick 当用户点击某个对象时调用的事件句柄。 ondblclick 当用户双击某个对象时调用的事件句柄。 onfocus 元素得到焦点。 练习:输入框 onblur 元素失去焦点。 应用场景:用于表单验证,用户离开某个输入框时,表明已经输入完了,咱们能够对它进行验证. onchange 域的内容被改变。 应用场景:一般用于表单元素,当元素内容被改变时触发.(三级联动) onkeydown 某个键盘按键被按下。 应用场景: 当用户在最后一个输入框按下回车按键时,表单提交. onkeypress 某个键盘按键被按下并松开。 onkeyup 某个键盘按键被松开。
onload 一张页面或一幅图像完成加载。
onmousedown 鼠标按钮被按下。 onmousemove 鼠标被移动。 onmouseout 鼠标从某元素移开。 onmouseover 鼠标移到某元素之上。 onmouseleave 鼠标从元素离开 onselect 文本被选中。 onsubmit 确认按钮被点击。
方式1:
<div id="div" onclick="foo(this)">点我呀</div> <script> function foo(self){ // 形参不能是this; console.log("点你大爷!"); console.log(self); } </script>
方式2:
<p id="abc">试一试!</p> <script> var ele=document.getElementById("abc"); ele.onclick=function(){ console.log("ok"); console.log(this); // this直接用 }; </script>
一、onload:
onload 属性开发中 只给 body元素加.这个属性的触发 标志着 页面内容被加载完成.应用场景: 当有些事情咱们但愿页面加载完马上执行,那么可使用该事件属性.
二、onsubmit:
当表单在提交时触发. 该属性也只能给form元素使用.应用场景: 在表单提交前验证用户输入是否正确.若是验证失败.在该方法中咱们应该阻止表单的提交.
三、事件传播:
四、onselect:
五、onchange:
六、onkeydown:
Event 对象:Event 对象表明事件的状态,好比事件在其中发生的元素、键盘按键的状态、鼠标的位置、鼠标按钮的状态。
事件一般与函数结合使用,函数不会在事件发生前被执行!event对象在事件发生时系统已经建立好了,而且会在事件函数被调用时传给事件函数.咱们得到仅仅须要接收一下便可.好比onkeydown,咱们想知道哪一个键被按下了,须要问下event对象的属性,这里就时KeyCode.
七、onmouseout与onmouseleave事件的区别: