日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 前端技术 > javascript >内容正文

javascript

学习javascript语言精粹的笔记

發(fā)布時(shí)間:2025/3/15 javascript 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 学习javascript语言精粹的笔记 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1、枚舉:

用for in 語句來遍歷一個(gè)對(duì)象中所有的屬性名,該枚舉過程將會(huì)列出所有的屬性也包括涵數(shù)和方法,如果我們想過濾掉那些不想要的值,最為常用的過濾器為hasOwnProperty方法,以及使用的typeof來排除,

var name;

for(name in another_stooge){

  if(typeof another_stooge[name] !== "function"){

    document.writeln(name + ":" + another_stooge[name]);

}

}

?

2、減少全局變量的污染:

a、最小化使用全局變量的一個(gè)方法是在你的應(yīng)用中只創(chuàng)建唯一一個(gè)全局變量,

var MYAPP = {};

該變量此時(shí)變成了你的應(yīng)用容器,

MYAPP.stooge = {

first-name:"joe",

last-name:"howard"

};

?b、可以使用閉包的形式進(jìn)行信息隱藏的方式來減少全局變量污染。

?

3、函數(shù)之調(diào)用方法模式:

當(dāng)一個(gè)函數(shù)被保存為對(duì)象的一個(gè)屬性時(shí),我們稱它為一個(gè)方法,當(dāng)一個(gè)方法被調(diào)用時(shí),this被綁定到該對(duì)象。如果一個(gè)調(diào)用表達(dá)式包含一個(gè)屬性存取表達(dá)式(即一個(gè)點(diǎn)表達(dá)式或者[subscript]下標(biāo)表達(dá)式),那么它被當(dāng)作一個(gè)方法來調(diào)用。

?

4、this關(guān)鍵字的理解:

當(dāng)函數(shù)以函數(shù)調(diào)用模式調(diào)用時(shí),this被綁定到全局對(duì)象,這是語言設(shè)計(jì)上的一個(gè)錯(cuò)誤,倘若語言設(shè)計(jì)正確,當(dāng)內(nèi)部函數(shù)被調(diào)用時(shí),this應(yīng)該仍然綁定到外部函數(shù)的this變量,這是設(shè)計(jì)錯(cuò)誤的后果是方法不能利用內(nèi)部函數(shù)來幫助它工作,因?yàn)閮?nèi)部函數(shù)的this被綁定了錯(cuò)誤的值,所以不能共享該方法對(duì)對(duì)象的訪問權(quán),幸運(yùn)的是,有一個(gè)很容易的解決方案,如果該方法定義一個(gè)變量并給它賦值為this,那么內(nèi)部函數(shù)就可以通過那個(gè)變量訪問到this。按照約定,我給那個(gè)變量命名為that。

簡(jiǎn)單的解釋是:精粹上面是說按照編程的習(xí)性???this應(yīng)該綁定父級(jí)函數(shù)的this作用域的???可是他卻錯(cuò)誤的綁定到window上了?

?

5、new操作符的理解:

理解下new這個(gè)操作符的作用,?當(dāng)存在new操作符時(shí),?函數(shù)中的this指向的是剛剛被new創(chuàng)建的對(duì)象,相當(dāng)于this=Object.create().?而不帶new直接調(diào)用時(shí),是正常的函數(shù)執(zhí)行,函數(shù)內(nèi)部的this語句指向運(yùn)行時(shí)的上下文環(huán)境. ? 最近看的書里面都不推薦使用函數(shù)構(gòu)造器的方式構(gòu)造函數(shù),?他們把?new?Function那一類和eval等到一起了.?也就是說使用new方式生成函數(shù)對(duì)象不被推薦.??但是沒有文檔說如何處理常規(guī)對(duì)象生成的問題? 6、以下是學(xué)習(xí)精粹的練習(xí)代碼

<ul id="nav">
<li>item1</li>
<li>item2</li>
<li>item3</li>
<li>item4</li>
</ul>
<script>
var Quo = function(string){
this.status = string;
}
Quo.prototype.get_status = function(){
return this.status;
}
var myQuo = new Quo("confused");
//document.writeln(myQuo.get_status());

var add = function(a,b){
return a+b;
}
var array = [3,4];
var sum = add.apply(null,array);
//alert(sum);
var statusObject = {
status:'OK'
}
var status = Quo.prototype.get_status.apply(statusObject);
//alert(status);

/*var a=10;
var c=20;
var d={
a:50,
c:60
}
function b(){
return this.a+this.c;
}
var e={
a:100,
c:200,
b:b
};
console.log(b());
console.log(b.apply(this));
console.log(b.apply(d));
console.log(b.apply(e));
console.log(e.b());
console.log(e.b.apply(e));
console.log(e.b.apply(null));
console.log(e.b.apply(this));*/

//arguments
var sum = function(){
var i,sum = 0;
for(i=0;i<arguments.length;i++){
sum += arguments[i];
}
return sum;
}
//alert(sum(4,8,15,16,23,42));

//throw
var add = function(a,b){
if(typeof a !== "name" || typeof b !== "name"){
throw{
name:"TypeError",
message:"add needs numbers"
};
}
return a + b;
}
var try_it = function(){
try{
add("seven");
}catch(e){
alert(e.name + ":" + e.message);
}
}
//try_it();

/*var myQuo = quo("aa");和var myQuo = new Quo("aa");的區(qū)別
function Constr(){
this.name = "123";
}
function func(){
return{
name:"123",
}
}
var a = new Constr();
alert(a.constructor);
var b = func();
alert(b.constructor);*/

//顏色從黃色到白色的漸變
var fade = function(node){
var level = 1;
var step = function(){
var hex = level.toString(16);
node.style.backgroundColor = "#FFFF" +hex +hex;
if(level<15){
level += 1;
setTimeout(step,100);
}
};
setTimeout(step,100);
}
fade(document.body);

var nav = document.getElementById("nav");
var nodes = nav.getElementsByTagName("li");
//直接讀取
/*for(i=0;i<nodes.length;i++){
nodes[i]['index'] = i;
nodes[i].onclick = function(event){
alert(event.target.index);
//alert(this.index);
}
}*/
//閉包的方式
var add_the_handlers = function(nodes){
var i;
for(i=0;i<nodes.length;i++){
nodes[i].onclick = function(a){
return function(event){
alert(a);
}
}(i);
}
}
add_the_handlers(nodes);

//js 記憶(緩存)
var fibonacci = function(){
var memo = [0,1];
var fib = function(n){
var result = memo[n];
if(typeof result !== 'number'){
result = fib(n-1)+fib(n-2);
memo[n] = result;
}
return result;
}
return fib;
}();
/*
var fibonacci = memoizer([0,1],function(shell,n){
return shell(n-1) + shell(n-2);
});

var factorial = memoizer([1,1],function(shell,n){
return n*shell(n-1);
});*/

//繼承
var Mammal = function(name){
this.name = name;
}

Mammal.prototype.get_name = function(){
return this.name;
}
Mammal.prototype.says = function(){
return this.saying || '';
}
var myMammal = new Mammal('Herb the Mammal');
var name = myMammal.get_name();
//alert(name);

var Cat = function(name){
this.name = name;
this.saying = 'meow';
}
Cat.prototype = new Mammal();
Cat.prototype.purr = function(n){
var i,s ='';
for(i=0;i<n;i++){
if(s){
s+='-';
}
s+='r';
}
return s;
};
Cat.prototype.get_name = function(){
return this.says() + ' ' + this.name + ' ' + this.says();
};
var myCat = new Cat('Henrietta');
var says = myCat.says(); //meow
var purr = myCat.purr(5); //r-r-r-r-r
var name = myCat.get_name();//meow Henrietta meow
//alert(says + ' '+purr+ ' ' +name);

//object.prototype是沒有長(zhǎng)度的
var numbers_object = {
'0':'zero','1':'one'
}
//alert(numbers_object); [object,object]

//傳參相加
function add1(){
var sum=0,i;
for(i=0;i<arguments.length;i++){
sum +=arguments[i];
}
return sum;
}
var sum1 = add1(1,2,3,4);
//alert(sum1);

//一維數(shù)組
Array.dim = function(dimension,initial){
var a=[],i;
for(i=0;i<dimension;i++){
a[i] = initial;
}
return a;
}
var myArray = Array.dim(10,0);
//alert(myArray);

//多維數(shù)組 用0填充的4*4的矩陣
Array.matrix = function(m,n,initial){
var a,i,j,mat=[];
for(i=0;i<m;i++){
a=[];
for(j=0;j<n;j++){
a[j] = 0;
}
mat[i] = a;
}
return mat;
}
var myMatrix = Array.matrix(4,4,0);
//console.log(myMatrix);

//構(gòu)造一個(gè)恒等矩陣的方法
Array.identity = function(n){
var i,mat = Array.matrix(n,n,0);
for(i=0;i<n;i++){
mat[i][i] = 1;
}
return mat;
}
myMatrix = Array.identity(4);
//document.write(myMatrix[3][3]);//1

//正則表達(dá)式
var parse_url = /^(?:([A-Za-z]+):)?(\/{0,3})([0-9.\-A-Za-z]+)(?::(\d+))?(?:\/([^?#]*))?(?:\?([^#]*))?(?:#(.*))?$/;
var url ="http://www.ora.com:80/goodparts?q#fragment";
var result = parse_url.exec(url);
//alert(result);

//正則驗(yàn)證數(shù)字
window.onblur = function(){
var num = document.getElementById("num").value;
//var ze = /^[0-9]*$/; //驗(yàn)證數(shù)字
//var ze = /^[A-Za-z]+$/; //驗(yàn)證大小寫字母
//var ze = /^[A-Za-z0-9]+$/; //驗(yàn)證大小寫字母和數(shù)字組合
//var ze = /^1[3|4|5|8][0-9]\d{4,8}$/; //驗(yàn)證手機(jī)號(hào)
//var ze = /^(\d{3,4}-)\d{7,8}$/; //驗(yàn)證電話號(hào)碼
//var ze = /^([A-Za-z0-9_-])+@([A-Za-z0-9])+(.[a-z])+$/; //驗(yàn)證郵箱
var ze = /(^\d{15}$)|(^\d{17}([0-9]|x)$)/; //驗(yàn)證身份證號(hào)
if(num == ""){
alert("不能為空");
}else if(ze.test(num)){
alert("是的");
}else{
alert("不是的");
}
}

//一個(gè)語句不能以一個(gè)函數(shù)表達(dá)式開頭,因?yàn)楣俜降恼Z法假定以單詞function開頭的語句是一個(gè)function語句,解決辦法就是把函數(shù)表達(dá)式括在一個(gè)圓括號(hào)之中,
(function(){
//函數(shù)體
})();

//arguments 不是數(shù)組,是偽數(shù)組,沒有方法,是帶有l(wèi)ength成員元素的對(duì)象,

//"=="會(huì)強(qiáng)制類型轉(zhuǎn)換,"==="這個(gè)不會(huì)強(qiáng)制類型轉(zhuǎn)換,一般建議用后者

</script>
<input type="text" value="" name="" id="num">

轉(zhuǎn)載于:https://www.cnblogs.com/smght/p/4431432.html

總結(jié)

以上是生活随笔為你收集整理的学习javascript语言精粹的笔记的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 51嘿嘿嘿国产精品伦理 | av在线大全| 国产黄色大片在线观看 | 视频一二三区 | av色片| 亚洲欧美一区二区在线观看 | www.avcao| 日韩精品在线免费观看视频 | 国产视频自拍一区 | 日韩中文字幕影院 | 涩五月婷婷 | 亚洲国产一二三 | 波多野结衣一级 | 色亚洲影院| 影音先锋中文字幕在线视频 | 成人性视频网 | 三上悠亚ed2k | 亚洲精品66| 全部免费毛片在线播放高潮 | 中文字幕一区二区三区四区五区 | 韩国特级毛片 | 中文字幕视频一区二区 | 欧美精品自拍视频 | 久久国色 | 动漫3d精品一区二区三区乱码 | 一区二区三区在线 | av久久久 | www.一起操 | 日韩精品一区二区三区在线 | 538国产精品一区二区免费视频 | 成人午夜视频在线观看 | 一区二区三区在线免费播放 | 日韩欧美一区视频 | 欧美操穴| 久久a视频| 国产九九在线 | 亚洲国产片 | 按摩害羞主妇中文字幕 | 三级国产三级在线 | 成人午夜精品视频 | 亚洲九色 | av一区二区三区四区 | 欧美人体一区二区 | 三级黄色片免费观看 | 无码人妻一区二区三区在线 | 黄色操人视频 | 99久久久久| 中文字幕第88页 | 欧美片一区二区 | 婷婷激情影院 | 精品人妻一区二区三区换脸明星 | 95看片淫黄大片一级 | 国产高清免费观看 | 日韩一级免费视频 | 欧美日韩精 | 97香蕉久久超级碰碰高清版 | 精品一区二区三区日韩 | 色综合久久久久久 | 丝袜美腿亚洲一区二区图片 | 初音未来打屁股 | 亚洲精品一区二区三区四区 | 欧美高清 | a国产| www.777奇米影视 | 欧美激情在线观看 | 在线观看黄色免费视频 | 韩国黄色av| 国产精品美女久久久久图片 | 国产真实乱在线更新 | 久久草网站 | 日韩精品电影 | 亚洲精品视频在线看 | 在线欧美a | 三级黄色视屏 | 成人免费在线网址 | 久久久久久综合网 | 国产精品美女在线观看 | 四虎在线影视 | 三年中文在线观看免费观看 | 欧美日韩亚洲二区 | 中国特级黄色大片 | 日韩精品999 | 在线a视频| 国产精品厕所 | 国产精品成人无码专区 | 国产精品天美传媒沈樵 | 黄色日批视频 | 亚欧美一区二区三区 | 日韩精品在线观看免费 | 少妇人妻真实偷人精品视频 | 思思99re| 国产精品毛片一区二区 | 青青草福利视频 | 91精品国产成人观看 | 打白嫩屁屁网站视频短裙 | 国产伦精品一区二区三区视频免费 | 黄色网页大全 | 国产日韩欧美精品一区二区 | 亚洲高清福利 |