內(nèi)置對(duì)象
document
document.referrer? //獲取上一個(gè)跳轉(zhuǎn)頁(yè)面的地址(需要服務(wù)器環(huán)境)
location
window.location.href? //獲取或者重定url地址
window.location.search //獲取地址參數(shù)部分
window.location.hash //獲取頁(yè)面錨點(diǎn)或者叫哈希值
Math
Math.random 獲取0-1的隨機(jī)數(shù)
Math.floor 向下取整
Math.ceil 向上取整
面向?qū)ο?/h3>面向過程與面向?qū)ο缶幊?/b>
1、面向過程:所有的工作都是現(xiàn)寫現(xiàn)用。
2、面向?qū)ο螅菏且环N編程思想,許多功能事先已經(jīng)編寫好了,在使用時(shí),只需要關(guān)注功能的運(yùn)用,而不需要這個(gè)功能的具體實(shí)現(xiàn)過程。
javascript對(duì)象?
將相關(guān)的變量和函數(shù)組合成一個(gè)整體,這個(gè)整體叫做對(duì)象,對(duì)象中的變量叫做屬性,變量中的函數(shù)叫做方法。javascript中的對(duì)象類似字典。
創(chuàng)建對(duì)象的方法?
1、單體
<script type="text/javascript">
var Tom = {
? ? name : 'tom',
? ? age : 18,
? ? showname : function(){
? ? ? ? alert('我的名字叫'+this.name);? ?
? ? },
? ? showage : function(){
? ? ? ? alert('我今年'+this.age+'歲');? ?
? ? }
}
</script>
2、工廠模式
<script type="text/javascript">
function Person(name,age,job){
? ? var o = new Object();
? ? o.name = name;
? ? o.age = age;
? ? o.job = job;
? ? o.showname = function(){
? ? ? ? alert('我的名字叫'+this.name);? ?
? ? };
? ? o.showage = function(){
? ? ? ? alert('我今年'+this.age+'歲');? ?
? ? };
? ? o.showjob = function(){
? ? ? ? alert('我的工作是'+this.job);? ?
? ? };
? ? return o;
}
var tom = Person('tom',18,'程序員');
tom.showname();
</script>
2、構(gòu)造函數(shù)
<script type="text/javascript">
? ? function Person(name,age,job){? ? ? ? ? ?
? ? ? ? this.name = name;
? ? ? ? this.age = age;
? ? ? ? this.job = job;
? ? ? ? this.showname = function(){
? ? ? ? ? ? alert('我的名字叫'+this.name);? ?
? ? ? ? };
? ? ? ? this.showage = function(){
? ? ? ? ? ? alert('我今年'+this.age+'歲');? ?
? ? ? ? };
? ? ? ? this.showjob = function(){
? ? ? ? ? ? alert('我的工作是'+this.job);? ?
? ? ? ? };
? ? }
? ? var tom = new Person('tom',18,'程序員');
? ? var jack = new Person('jack',19,'銷售');
? ? alert(tom.showjob==jack.showjob);
</script>
3、原型模式
<script type="text/javascript">
? ? function Person(name,age,job){? ? ? ?
? ? ? ? this.name = name;
? ? ? ? this.age = age;
? ? ? ? this.job = job;
? ? }
? ? Person.prototype.showname = function(){
? ? ? ? alert('我的名字叫'+this.name);? ?
? ? };
? ? Person.prototype.showage = function(){
? ? ? ? alert('我今年'+this.age+'歲');? ?
? ? };
? ? Person.prototype.showjob = function(){
? ? ? ? alert('我的工作是'+this.job);? ?
? ? };
? ? var tom = new Person('tom',18,'程序員');
? ? var jack = new Person('jack',19,'銷售');
? ? alert(tom.showjob==jack.showjob);
</script>
4、繼承
<script type="text/javascript">
? ? ? ? function fclass(name,age){
? ? ? ? ? ? this.name = name;
? ? ? ? ? ? this.age = age;
? ? ? ? }
? ? ? ? fclass.prototype.showname = function(){
? ? ? ? ? ? alert(this.name);
? ? ? ? }
? ? ? ? fclass.prototype.showage = function(){
? ? ? ? ? ? alert(this.age);
? ? ? ? }
? ? ? ? function sclass(name,age,job)
? ? ? ? {
? ? ? ? ? ? fclass.call(this,name,age);
? ? ? ? ? ? this.job = job;
? ? ? ? }
? ? ? ? sclass.prototype = new fclass();
? ? ? ? sclass.prototype.showjob = function(){
? ? ? ? ? ? alert(this.job);
? ? ? ? }
? ? ? ? var tom = new sclass('tom',19,'全棧工程師');
? ? ? ? tom.showname();
? ? ? ? tom.showage();
? ? ? ? tom.showjob();
? ? </script>
新選擇器
1、document.querySlector()
2、document.querySlectorAll()
jQuery介紹
jquery是一個(gè)函數(shù)庫(kù),一個(gè)js文件,頁(yè)面用script標(biāo)簽引入這個(gè)js文件就可以使用。
<script type="text/javascript" src="js/jquery-1.12.2.js"></script>
jquery加載
將獲取元素的語(yǔ)句寫到頁(yè)面頭部,會(huì)因?yàn)樵剡€沒有加載而出錯(cuò),jquery提供了ready方法解決這個(gè)問題,它的速度比原生的 window.onload 更快。
<script type="text/javascript">
$(document).ready(function(){
? ? ......
});
</script>
可以簡(jiǎn)寫為:
<script type="text/javascript">
$(function(){
? ? ......
});
</script>
jquery選擇器
jquery用法思想一?
選擇某個(gè)網(wǎng)頁(yè)元素,然后對(duì)它進(jìn)行某種操作
jquery選擇器?
jquery選擇器可以快速地選擇元素,選擇規(guī)則和css樣式相同,使用length屬性判斷是否選擇成功。
$(document) //選擇整個(gè)文檔對(duì)象
$('li') //選擇所有的li元素
$('#myId') //選擇id為myId的網(wǎng)頁(yè)元素
$('.myClass') // 選擇class為myClass的元素
$('input[name=first]') // 選擇name屬性等于first的input元素
$('#ul1 li span') //選擇id為為ul1元素下的所有l(wèi)i下的span元素
對(duì)選擇集進(jìn)行修飾過濾(類似CSS偽類)
$('#ul1 li:first') //選擇id為ul1元素下的第一個(gè)li
$('#ul1 li:odd') //選擇id為ul1元素下的li的奇數(shù)行
$('#ul1 li:eq(2)') //選擇id為ul1元素下的第3個(gè)li
$('#ul1 li:gt(2)') // 選擇id為ul1元素下的前三個(gè)之后的li
$('#myForm :input') // 選擇表單中的input元素
$('div:visible') //選擇可見的div元素
對(duì)選擇集進(jìn)行函數(shù)過濾
$('div').has('p'); // 選擇包含p元素的div元素
$('div').not('.myClass'); //選擇class不等于myClass的div元素
$('div').filter('.myClass'); //選擇class等于myClass的div元素
$('div').first(); //選擇第1個(gè)div元素
$('div').eq(5); //選擇第6個(gè)div元素
選擇集轉(zhuǎn)移
$('div').prev('p'); //選擇div元素前面的第一個(gè)p元素
$('div').prevAll('p'); //選擇div元素前面所有的p元素
$('div').next('p'); //選擇div元素后面的第一個(gè)p元素
$('div').nextAll('p'); //選擇div元素后面所有的p元素
$('div').closest('form'); //選擇離div最近的那個(gè)form父元素
$('div').parent(); //選擇div的父元素
$('div').children(); //選擇div的所有子元素
$('div').siblings(); //選擇div的同級(jí)元素
$('div').find('.myClass'); //選擇div內(nèi)的class等于myClass的元素