成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Javascript基礎(chǔ)知識(shí)(一)

MrZONT / 449人閱讀

摘要:它可以接收兩個(gè)參數(shù),表示要查找的子字符串,表示查找的開始位置,省略的話則從開始位置進(jìn)行檢索。它會(huì)返回第一個(gè)匹配的子字符串的起始位置,如果沒(méi)有匹配的,則返回。返回一個(gè)布爾值,表示指定的對(duì)象是否在本對(duì)象的原型鏈中。

前言

前端開發(fā)最基本的就是HTML + CSS + JS了,剛?cè)胄袝r(shí)聽到的介紹就是,寫頁(yè)面亦如造房子,HTML為搭戶型,CSS是房屋裝飾,JS則好比是水電安裝,是最后的功能了。 下面我們開始裝水電了.....

ECMAScript 和 JavaScript關(guān)系

ECMAScript是由歐洲計(jì)算機(jī)制造商協(xié)會(huì)(European Computer Manufacturers Association)頒布的關(guān)于JavaScript的語(yǔ)言規(guī)范,即JS的發(fā)展是以ECMAScript為標(biāo)準(zhǔn)進(jìn)行的。自1997年發(fā)布首版以來(lái),已經(jīng)歷經(jīng)N多版,好像我還在百度搜索let、const等ES6語(yǔ)法時(shí),聽說(shuō)現(xiàn)在倏的就ES10都出草案了!目前個(gè)人開發(fā)主要是 ES5/6。ECMAScript版本歷史

Javascript基礎(chǔ)語(yǔ)法
1. 輸出  
window.alert("hello guys!")//彈出警告窗
document.write("I am contents.");//將內(nèi)容寫到HTML文檔中
console.log("我在控制臺(tái)輸出!","others");//將內(nèi)容輸出到瀏覽器控制臺(tái)
console.log("Let us play %s this %s !","basketball","friday");//%s 字符串占位符===>
// "Let us play basketball this friday"
var familyInfo = { 
    name:"前端牛逼",
    id:666
}
console.log("家族ID是 %d,家族信息是 %O",1235,familyInfo)//%d 整數(shù)占位符 %O對(duì)象占位符
//當(dāng)然,如果覺得這樣的log輸出有點(diǎn)“脫褲子放屁”,還是直接如下不用占位符吧
console.log("家族ID是:",familyID ,"家族信息是",familyInfo);

//有一些用的相對(duì)少些的Log輸出:

console.debug(object)
//在控制臺(tái)輸出一條消息,包含一個(gè)指向代碼調(diào)用位置的超鏈接。假如是直接在控制臺(tái)輸入該命令,//就不會(huì)出現(xiàn)超鏈接(和console.log()一樣)。

console.info(object)
//在控制臺(tái)輸出一條帶有“信息”圖標(biāo)的消息和一個(gè)指向代碼調(diào)用位置的超鏈接。

console.warn(object)
//在控制臺(tái)輸出一條帶有“警告”圖標(biāo)的消息和一個(gè)指向代碼調(diào)用位置的超鏈接。

console.error(object)
//在控制臺(tái)輸出一條帶有“錯(cuò)誤”圖標(biāo)的消息和一個(gè)指向代碼調(diào)用位置的超鏈接。

console.dir(object)
//以列表形式輸出一個(gè)對(duì)象的所有屬性,有點(diǎn)和你查看DOM窗口相類似。
 
2.運(yùn)算
var num  = (5 + 2)*10; // 70   = + - *  / %(取膜 ) ++ --
10%3// 1
//注意一下這兩個(gè)區(qū)別
var i = 0;
var num =  i++;//0  
var num1 = ++i;//1


//比較運(yùn)算
var count =  0; 
if(count > 0){console.log("num 大于 0")}//  JS比較運(yùn)算符中:     == === !== != <  > 
null == undefined //true
null === undefined //false

不同數(shù)據(jù)類型做比較時(shí)的一些規(guī)則

//邏輯運(yùn)算符
// &&    and    
 (2 < 10 && 3 > 1) //true
// || or     
(a || b) //只要一個(gè)為true,結(jié)果即為true 
// ! not    
 var num = 0;
!num //true(將num轉(zhuǎn)換為布爾值再取反);
3.javascript 關(guān)鍵字和保留字(備胎咯)

關(guān)鍵字 (用于標(biāo)識(shí)要執(zhí)行的操作): break、case、catch、continue、default、delete、do、else、finally、for、function、
if、in、instanceof、new、return、switch、this、throw、try、typeof、var、void

保留字(當(dāng)前的語(yǔ)言版本中并沒(méi)有使用,但在以后 JavaScript 擴(kuò)展中會(huì)用到):abstract
boolean、byte、char、class、const、debugger、double、enum、export、extends、final、float、goto、implements、import、int

4.注釋
//單行注釋
//console.log("num");

 alert("error") // 單行末注釋

//塊注釋
/*
document.getElementById("myH1").innerHTML="Welcome to my Homepage";
document.getElementById("myP").innerHTML="This is my first paragraph.";
*/
5.條件語(yǔ)句
if(isVVmusic){
//客戶端內(nèi)
}else{
//端外
}

if(sex == "男"){
 console.log("小哥哥")
}else if(sex == "女"){
 console.log("小姐姐")
}else{
 console.log("薩瓦迪卡~")
}


switch(res.retCode){
    case 1000:
        console.log("創(chuàng)建活動(dòng)成功!")
        break;
    case 1001:
        console.log("不在申請(qǐng)時(shí)間內(nèi)!")
        break;
    case 1002:
        console.log("userID不存在!")
        break;
    default:
       console.log("參數(shù)不正確");
}

//有一種情況可能只是要根據(jù)條件去取一個(gè)值,比如toast的提示文案,這時(shí)用條件判斷顯得裹腳布又長(zhǎng)又臭的時(shí)候,可以考慮另一種方式比如:
var toastTexts = {
    "1000":"創(chuàng)建活動(dòng)成功!",
    "1001":"不在申請(qǐng)時(shí)間內(nèi)!",
    "1002":"參數(shù)不正確",
    "1003":"userID不存在!",
    "1008":"比賽以結(jié)束",
    ......
}
if(res && res.retCode){
 let toast = toastTexts[res.retCode];
 alert(toast);
}

6.循環(huán)語(yǔ)句

for - 循環(huán)代碼塊一定的次數(shù)

for (語(yǔ)句 1; 語(yǔ)句 2; 語(yǔ)句 3){

被執(zhí)行的代碼塊

}
語(yǔ)句 1 (代碼塊)開始前執(zhí)行

語(yǔ)句 2 定義運(yùn)行循環(huán)(代碼塊)的條件

語(yǔ)句 3 在循環(huán)(代碼塊)已被執(zhí)行之后執(zhí)行

    for (var i =0 ;i

for/in - 循環(huán)遍歷對(duì)象的屬性

    
    var res = {
        name:"劉德華",
        age:50,
        place:"hongkong"
    }  
    for (var key in res){
      console.log("%O : %O",key,res[key]);  
    }

while - 當(dāng)指定的條件為 true 時(shí)循環(huán)指定的代碼塊

    var i =0;
    while (i<5)
    {
        if(i === 2) break;
        console.log("當(dāng)前數(shù)字是"+ i);
        i++;
    }

do/while - 同樣當(dāng)指定的條件為 true 時(shí)循環(huán)指定的代碼塊

do/while 循環(huán)是 while 循環(huán)的變體。該循環(huán)會(huì)在檢查條件是否為真之前執(zhí)行一次代碼塊,然后如果條件為真的話,就會(huì)重復(fù)這個(gè)循環(huán)。

    var i = 0;
    do{
        console.log("number is "+ i)
        i++;
    } 
   while (i<5);

break 語(yǔ)句用于跳出循環(huán)。(不可以用于es6的forEach)

continue 用于跳過(guò)循環(huán)中的一個(gè)迭代。

JavaScript數(shù)據(jù)類型

Javascript的數(shù)據(jù)類型可以分為:基本數(shù)據(jù)類型(值類型)引用數(shù)據(jù)類型

值類型(基本類型):

字符串(String)

數(shù)字(Number)

空(Null)

未定義(Undefined)

布爾(Boolean)

Symbol(*Symbol 是 ES6 引入了一種新的原始數(shù)據(jù)類型,表示獨(dú)一無(wú)二的值)

引用數(shù)據(jù)類型:

對(duì)象(Object)

數(shù)組(Array)

函數(shù)(Function)

從上圖可以看出,基本數(shù)據(jù)類型保存的是具體的值,當(dāng)將a變量的值賦值給b變量,b變量之后的任何    操作就和a無(wú)關(guān)了;而當(dāng)把引用數(shù)據(jù)類型的值賦值給些個(gè)( C、D )變量,C得到的是一個(gè)引用地址,同樣D也是,當(dāng)操作C或者D中某一個(gè)的屬性時(shí),實(shí)際上是順著這條同樣的引用地址改了堆內(nèi)存中的值,因此其它引用了這一相同地址的變量再取自身當(dāng)中某屬性值時(shí),都是被更改過(guò)的。
判斷數(shù)據(jù)類型
    typeof   123   //"number"
    typeof   "abc"  //"string"
    typeof    true       //"boolean"
    typeof    undefined   //"undefined"
    typeof    null        //"object"
    typeof    { }           //"object"
    typeof    [ ]           //"object"
    typeof    console.log       //"function"
各類型常用的操作方法

1.String

charAt 獲取字符串中指定位置的字符,若指定位置沒(méi)有,則返回空字符串

"let us play basketball!".charAt(0);//"l"   返回索引位置0處的字符
"let us play basketball!".charAt(100000);// "" 如果參數(shù) 大于 "string".length-1 (找不到)即返回 ""

charCodeAt 獲取字符串指定位置字符的unicode編碼

"let us play basketball!".charCodeAt(1);// 101 
"let us play basketball!".charCodeAt(1000) //NaN 如果參數(shù) 大于 "string".length-1 (找不到)即返回 NaN

fromCharCode() 可接受一個(gè)或多個(gè)Unicode值,然后返回一個(gè)字符串。

String.fromCharCode(97, 98, 99, 100, 101); //"abcde"

indexOf(string,start)用來(lái)檢索指定的字符串值在字符串中首次出現(xiàn)的位置。它可以接收兩個(gè)參數(shù),string表示要查找的子字符串,start表示查找的開始位置,省略的話則從開始位置進(jìn)行檢索。

"let us play basketball!".indexOf("us");// 4
"let us play basketball!".indexOf("us",5);// -1 找不到則返回-1

lastIndexOf(string) 與indexOf類似,它返回的是一個(gè)指定的子字符串值最后出現(xiàn)的位置,其檢索順序是從后向前

"let us play basketball!".lastIndexOf("b");// 18
"let us play basketball!".lastIndexOf(" ",5);// 3 從索引為5處開始往前查找

-search(substr/regexp) 檢索字符串中指定的子字符串,或檢索與正則表達(dá)式相匹配的子字符串。它會(huì)返回第一個(gè)匹配的子字符串的起始位置,如果沒(méi)有匹配的,則返回-1。

"let us play basketball!".search("us");// 4
"let us play basketball!".search(/us/);// 4
"let us play basketball!".search(/usb/);// -1

subString(start,end) 從start位置截取到end位置截取字符串

"let us play basketball!".substring(4,6);// "us" //注意是包括開始項(xiàng)位置,不包括結(jié)束項(xiàng)位置
"let us play basketball!".substring(7);// "play basketball!" //第二個(gè)參數(shù)不傳,則默認(rèn)截取到最后一位
"let us play basketball!".substring(1000);//""  參數(shù)大于字符串length時(shí)返回 ""

slice(start,end) 與substring()方法非常類似,它傳入的兩個(gè)參數(shù)也分別對(duì)應(yīng)著開始位置和結(jié)束位置。而區(qū)別在于,slice()中的參數(shù)可以為負(fù)值,如果參數(shù)是負(fù)數(shù),則該參數(shù)規(guī)定的是從字符串的尾部開始算起的位置。也就是說(shuō),-1 指字符串的最后一個(gè)字符。

"let us play basketball!".slice(0,3);// "let"  
"let us play basketball!".slice(-5,-1);// "ball" //截取順序依然是從左到右

replace(string/regexp,string) 字符串替換 第一個(gè)參數(shù)可以是字符串也可以是正則,將匹配到的內(nèi)容用第2個(gè)參數(shù)替換掉

"let us play basketball!".replace("us","me");// "let me play basketball!"
"let us play basketball!".replace(/basketball/,"baseball");// "let us play baseball!"
"let us play basketball!".replace(/ /g,"--");// "let--us--play--basketball!" 利用g修飾符全部替換

split("") 按某字符將整個(gè)字符串拆分成數(shù)組,參數(shù)為字符串或者正則

"let us play basketball!".split(" ");//["let", "us", "play", "basketball!"]
"let us play basketball!".split(/ /);//["let", "us", "play", "basketball!"] 

toLowerCase()和toUpperCase() 將字符串轉(zhuǎn)換成全部大寫或者全部小寫

"let us play basketball!".toUpperCase();//LET US PLAY BASKETBALL!"

2.Array

push(arg1,arg2,arg3) 向數(shù)組后面依次添加新的一項(xiàng),返回的是新數(shù)組的長(zhǎng)度

var arr1 = [1,2,3];
arr1.push(3,4,5);//6
console.log(arr1);//[1, 2, 3, 3, 4, 5]

pop() 刪除數(shù)組最后一項(xiàng),并且返回該項(xiàng)

var arr1 = [1,2,3];
arr1.pop();//3
console.log(arr1);//[1, 2]

shift() 刪除數(shù)組第一項(xiàng),并且返回該項(xiàng)

var arr1 = [1,2,3];
arr1.shift();//1
console.log(arr1);//[2,3]

unshift() 向數(shù)組開頭添加一項(xiàng),并且返回新數(shù)組長(zhǎng)度

var arr1 = [1,2,3];
arr1.unshift(0);// 4
console.log(arr1);//[0,1,2,3]

concat() 將多個(gè)數(shù)組拼成一個(gè)新的數(shù)組,并返回新數(shù)組

var arr1 = [1,2,3],
    arr2 = [4,5,6],
    arr3;
arr3 = arr1.concat(arr2);
console.log(arr1);// [1,2,3]
console.log(arr2);//[4,5,6]
console.log(arr3);//[1,2,3,4,5,6]

join() 把數(shù)組中的每一項(xiàng) 按照指定的分隔符拼接成字符串

var arr1 = ["let","us","play","basketball"];
var str1 = arr1.join(" ");
console.log(str1);//"let us play basketball"

splice 刪除數(shù)組中的任意項(xiàng) 返回值是被刪除的數(shù)組項(xiàng)(會(huì)改變?cè)瓟?shù)組)

var arr1 = ["let","us","play","basketball"];
var arr2 = arr1.splice(0,2);
console.log(arr1);//?["play", "basketball"]
console.log(arr2);?//["let", "us"]

slice:復(fù)制數(shù)組 返回值是復(fù)制到的新數(shù)組 寫上數(shù)值之后 不包含被復(fù)制的最后一項(xiàng)(不改變?cè)瓟?shù)組)

var arr1 = [1,2,3,4,5,6];
var arr2 = arr1.slice(1,3);
console.log(arr1);//?[1, 2, 3, 4, 5, 6]
console.log(arr2);?//?[2, 3] 也是包括開始位置項(xiàng),不包括結(jié)束位置項(xiàng)

reverse:倒序數(shù)組 返回值倒序數(shù)組 (原有數(shù)組改變)

var arr1 = ["a","b","c","d"];
var arr2 = arr1.reverse();
console.log(arr1);//["d", "c", "b", "a"]
console.log(arr2);//["d", "c", "b", "a"]

sort 數(shù)組排序

var arr1 = [1,5,6,8,2];
arr1.sort(function(a,b){return a-b});//[1, 2, 5, 6, 8] 升序
arr1.sort(function(a,b){return b-a});//?[8, 6, 5, 2, 1] 降序

3.Object

hasOwnProperty():返回一個(gè)布爾值,表示某個(gè)對(duì)象是否含有指定的屬性,而且此屬性非原型鏈繼承。

var obj1 = {name:"kobe",age:18};
obj1.hasOwnProperty("name");//true
obj1.hasOwnProperty("height");//false

isPrototypeOf():返回一個(gè)布爾值,表示指定的對(duì)象是否在本對(duì)象的原型鏈中。

var Plays = function(obj){
    this.name = obj.name;
    this.age = obj.age;
}
var player1 = new Plays({name:"kobe",age:18});
console.log(Plays.prototype.isPrototypeOf(player1));//true

propertyIsEnumerable():判斷指定屬性是否可枚舉。

var obj1 = {a:1};
obj1.propertyIsEnumerable("a");//true
obj1.propertyIsEnumerable("__proto__");//false

toString():返回對(duì)象的字符串表示。

var obj1 = {a:1};
obj1.toString();//"[object Object]"

watch():給對(duì)象的某個(gè)屬性增加監(jiān)聽。

unwatch():移除對(duì)象某個(gè)屬性的監(jiān)聽。

valueOf():返回指定對(duì)象的原始值。

4.Number

toFixed(x)——把數(shù)字轉(zhuǎn)換為字符串,x為小數(shù)點(diǎn)后位數(shù)

10.235233.toFixed(1);///10.2

toPrecision(x)——把數(shù)字格式化為指定的長(zhǎng)度

23.3336.toPrecision(2);//23
111.toPrecision(2); //Uncaught SyntaxError: Invalid or unexpected token

valueOf()——返回值

var boo = new Boolean(false)
document.write(boo.valueOf());//false

以上就是我的分享內(nèi)容了!

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/103091.html

相關(guān)文章

  • 基礎(chǔ)鞏固:JavaScript基礎(chǔ)總結(jié)(基本概念篇)

    摘要:基礎(chǔ)鞏固基礎(chǔ)總結(jié)使用已經(jīng)好幾年了,由于工作主要是做服務(wù)端開發(fā),在工作中逐漸發(fā)現(xiàn)的使用范圍原來(lái)越廣泛。這里要注意,務(wù)必將基礎(chǔ)部分掌握牢靠,磨刀不誤砍柴功,只有將基礎(chǔ)部分掌握并建立起系統(tǒng)的知識(shí)體系,在后面學(xué)習(xí)衍生的其他模式才能游刃有余。 基礎(chǔ)鞏固:JavaScript基礎(chǔ)總結(jié) 使用JavaScript已經(jīng)好幾年了,由于工作主要是做服務(wù)端開發(fā),在工作中逐漸發(fā)現(xiàn)JavaScript的使用范圍原...

    YuboonaZhang 評(píng)論0 收藏0
  • JavaScript系列(四) - 收藏集 - 掘金

    摘要:函數(shù)式編程前端掘金引言面向?qū)ο缶幊桃恢币詠?lái)都是中的主導(dǎo)范式。函數(shù)式編程是一種強(qiáng)調(diào)減少對(duì)程序外部狀態(tài)產(chǎn)生改變的方式。 JavaScript 函數(shù)式編程 - 前端 - 掘金引言 面向?qū)ο缶幊桃恢币詠?lái)都是JavaScript中的主導(dǎo)范式。JavaScript作為一門多范式編程語(yǔ)言,然而,近幾年,函數(shù)式編程越來(lái)越多得受到開發(fā)者的青睞。函數(shù)式編程是一種強(qiáng)調(diào)減少對(duì)程序外部狀態(tài)產(chǎn)生改變的方式。因此,...

    cfanr 評(píng)論0 收藏0
  • 如何正確學(xué)習(xí)JavaScript

    摘要:然而,雖然先生對(duì)無(wú)所不知,被譽(yù)為世界的愛因斯坦,但他的語(yǔ)言精粹并不適合初學(xué)者學(xué)習(xí)。即便如此,在后面我還是會(huì)建議把當(dāng)做補(bǔ)充的學(xué)習(xí)資源。但目前為止,依然是學(xué)習(xí)編程的好幫手。周正則表達(dá)式,對(duì)象,事件,閱讀權(quán)威指南第,,,章。 既然你找到這篇文章來(lái),說(shuō)明你是真心想學(xué)好JavaScript的。你沒(méi)有想錯(cuò),當(dāng)今如果要開發(fā)現(xiàn)代網(wǎng)站或web應(yīng)用(包括互聯(lián)網(wǎng)創(chuàng)業(yè)),都要學(xué)會(huì)JavaScript。而面對(duì)泛...

    canger 評(píng)論0 收藏0
  • 前端練級(jí)攻略(第二部分)

    摘要:是文檔的一種表示結(jié)構(gòu)。這些任務(wù)大部分都是基于它。這個(gè)實(shí)踐的重點(diǎn)是把你在前端練級(jí)攻略第部分中學(xué)到的一些東西和結(jié)合起來(lái)。一旦你進(jìn)入框架部分,你將更好地理解并使用它們。到目前為止,你一直在使用進(jìn)行操作。它是在前端系統(tǒng)像今天這樣復(fù)雜之前編寫的。 本文是 前端練級(jí)攻略 第二部分,第一部分請(qǐng)看下面: 前端練級(jí)攻略(第一部分) 在第二部分,我們將重點(diǎn)學(xué)習(xí) JavaScript 作為一種獨(dú)立的語(yǔ)言,如...

    BWrong 評(píng)論0 收藏0
  • 編程界也有修仙秘籍?程序員碼字3年終得《JavaScript 百煉成仙》

    摘要:百煉成仙走紅該書于年月出版,作者楊逸飛是一名從事開發(fā)六年的程序員,寫過(guò)諸多技術(shù)博客。作者在博客上對(duì)粉絲提出關(guān)于百煉成仙的問(wèn)題進(jìn)行了統(tǒng)一回復(fù),該博文持續(xù)占據(jù)熱榜第二,熱度達(dá)。 剛接觸編程的小伙伴,估計(jì)都想過(guò)把枯燥無(wú)聊的編程教材變成小說(shuō)讀的念頭,這不,說(shuō)曹操曹操就來(lái)了,真的有程序員用寫修仙小說(shuō)的...

    zzbo 評(píng)論0 收藏0
  • 理解JavaScript的核心知識(shí)點(diǎn):原型

    摘要:首先,需要來(lái)理清一些基礎(chǔ)的計(jì)算機(jī)編程概念編程哲學(xué)與設(shè)計(jì)模式計(jì)算機(jī)編程理念源自于對(duì)現(xiàn)實(shí)抽象的哲學(xué)思考,面向?qū)ο缶幊淌瞧湟环N思維方式,與它并駕齊驅(qū)的是另外兩種思路過(guò)程式和函數(shù)式編程。 JavaScript 中的原型機(jī)制一直以來(lái)都被眾多開發(fā)者(包括本人)低估甚至忽視了,這是因?yàn)榻^大多數(shù)人沒(méi)有想要深刻理解這個(gè)機(jī)制的內(nèi)涵,以及越來(lái)越多的開發(fā)者缺乏計(jì)算機(jī)編程相關(guān)的基礎(chǔ)知識(shí)。對(duì)于這樣的開發(fā)者來(lái)說(shuō) J...

    iKcamp 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<