亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

帶領(lǐng)大家學(xué)習(xí)javascript基礎(chǔ)篇(一)之基本概念

 更新時(shí)間:2015年11月24日 09:33:52   作者:敷衍不起  
這篇文章主要介紹了帶領(lǐng)大家學(xué)習(xí)javascript基礎(chǔ)篇(一)之基本概念的相關(guān)資料,需要的朋友可以參考下

學(xué)習(xí)目錄

一、數(shù)據(jù)類型

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

二、操作符

遞增和遞減操作符:

位操作符:
布爾操作符:
加性操作符:
相等操作符

三、語(yǔ)句
for-in語(yǔ)句
label語(yǔ)句

一、數(shù)據(jù)類型

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

基本數(shù)據(jù)類型(五種)

Undefined
Null
Boolean
Number
String

復(fù)雜數(shù)據(jù)類型(一種)

Object
Undefined:只有一個(gè)值undefined(定義了沒(méi)有賦值)。

例:

 

注意:如果沒(méi)有用var申明,直接使用會(huì)報(bào)異常( ... is not defined)。

建議:每次var聲明都賦初始值,可以減少很多意外情況。

如:

 

Null:略

Boolean:只有兩個(gè)字面值: true 和 false。

任何數(shù)據(jù)類型通過(guò)Boolean()函數(shù)都可以轉(zhuǎn)成Boolean類型。

String:非空字符=>true     空字符=>false
Number:任何非零=>true   0和NaN=>false
Object:任何對(duì)象=>true      null=>false
Undefined                        undefined=>false

如:

 

既然如此,我們?cè)谑褂胕f語(yǔ)句的時(shí)候會(huì)自動(dòng)執(zhí)行相應(yīng)的 Boolean 轉(zhuǎn)換。

if (str) {
  //str只要是非空字符、任何非零數(shù)字、任何非null對(duì)象 都是true
  //str只要是空字符、0、NaN、null、undefined 都是false
  //這樣就省去了 我們一個(gè)個(gè)的判斷了
  alert("true");
}

 String:略

二、操作符

遞增和遞減操作符:

【++num、--num、num++、num--】

 

都是4,好像看不出有什么不同。

 

好,區(qū)別來(lái)了。一個(gè)任然是4,一個(gè)變成了5。為什么會(huì)這樣呢??jī)?yōu)先級(jí)不同而已,age++先執(zhí)行運(yùn)算符+然后在自身加1,++age先自身加1然后再通過(guò)+運(yùn)算符加1。

位操作符:

【按位非NOT(~)、按位與AND(&)、按位或OR(|)、按位異或XOR(^)、左移(<<)、有符號(hào)的右移(>>)、無(wú)符號(hào)右移(>>>)】
其實(shí)平時(shí)我們很少用到,這里稍作了解。

例:按位非

var num1 = 25; // 二進(jìn)制 00000000000000000000000000011001
var num2 = ~num1; // 二進(jìn)制 11111111111111111111111111100110
alert(num2); // -26

例:按位與

var result = 25 & 3;
alert(result); //1
//*********************
25 = 0000 0000 0000 0000 0000 0000 0001 1001
3 = 0000 0000 0000 0000 0000 0000 0000 0011
---------------------------------------------
AND = 0000 0000 0000 0000 0000 0000 0000 0001 

例:按位異或

var result = 25 ^ 3;
alert(result); //26
//*************
25 = 0000 0000 0000 0000 0000 0000 0001 1001
3 = 0000 0000 0000 0000 0000 0000 0000 0011
---------------------------------------------
XOR = 0000 0000 0000 0000 0000 0000 0001 1010 //十進(jìn)制值 26

 例:左移

var oldValue = 2; // 等于二進(jìn)制的 10
var newValue = oldValue << 5; // 等于二進(jìn)制的 1000000,十進(jìn)制的 64

例:有符號(hào)右移

var oldValue = 64; // 等于二進(jìn)制的 1000000
var newValue = oldValue >> 5; // 等于二進(jìn)制的 10 ,即十進(jìn)制的 2 

例:無(wú)符號(hào)右移(這個(gè)差異有點(diǎn)大,因?yàn)榈?2為1代表負(fù)數(shù)的值也移過(guò)來(lái)了)

var oldValue = -64; // 等于二進(jìn)制的 11111111111111111111111111000000
var newValue = oldValue >>> 5; // 00000111111111111111111111111110 等于十進(jìn)制的 134217726

布爾操作符:

【邏輯非(!)、邏輯與(&&)、邏輯或(||)】

這里需要說(shuō)的就是&&和||是短路操作。||如果前面一個(gè)滿足條件了就不檢測(cè)后面的條件了,&&相反前面一個(gè)不滿足條件就不檢測(cè)后面的條件了。

例:

var age = 3;
if(age||aaa){//這里的age轉(zhuǎn)Boolean為ture,所以后面的aaa就不檢測(cè)了。
alert(age);}
if(aaa||age){//這里將會(huì)報(bào)錯(cuò)
alert(age);}

測(cè)試:

 

這里可以告訴大家一個(gè)小小的技巧,很多時(shí)候我們并不知道某個(gè)變量是否有值,但是我們又需要正常使用,那么我們可以給個(gè)備胎。

如:瀏覽器的兼容問(wèn)題,在舊式瀏覽器中是用window.event來(lái)取事件的相關(guān)屬性值,新式瀏覽器中是直接通過(guò)形參的形式傳過(guò)來(lái)的。我們就可以。

function myonclick(ev) {
  var myevent = ev || window.event;//這樣就可以保證新舊瀏覽器的兼容了
}

實(shí)驗(yàn):  

 

加性操作符:

【加法(+)、減法(-)】

這個(gè)再熟悉不過(guò)了,不過(guò)還是有一點(diǎn)需要注意。

var strnum1 = "5";
var num2 = strnum1 + 3;
var num3 = strnum1 - 3;
alert("num2="+num2+" num3="+num3);//這里會(huì)是什么結(jié)果呢?

讓我們來(lái)測(cè)試一下吧。

 

為什么會(huì)這樣?字符串和數(shù)字相加,數(shù)字會(huì)轉(zhuǎn)為字符串。字符串和數(shù)字相減,字符串轉(zhuǎn)為數(shù)字。

相等操作符

奇怪吧,字符串怎么和數(shù)字相等。是的,這里用到了自動(dòng)轉(zhuǎn)型。但是,我們不想看到這樣的結(jié)果怎么辦?

 

是的,我們可以用===全等于。不僅比較數(shù)值,還比較類型。

三、語(yǔ)句

for-in語(yǔ)句

for循環(huán)語(yǔ)句用得多,for-in可能平時(shí)就用的較少了。(for-in循環(huán)應(yīng)該用在非數(shù)組對(duì)象的遍歷上,使用for-in進(jìn)行循環(huán)也被稱為“枚舉”。)

例:

 

label語(yǔ)句

感覺(jué)和C#中的goto很像,但又不一樣。

我們平時(shí)有沒(méi)有過(guò)在多個(gè)循環(huán)嵌套里面想跳出第二層循環(huán)?一般我們只能用break或者continue跳出最里面的循環(huán),或者return跳出整個(gè)函數(shù)。萬(wàn)萬(wàn)沒(méi)想到的是,還有一個(gè)label語(yǔ)句,可以跳出任意層循環(huán)。
例:

 

 好了,第一篇差不多就整理到這里了。最后出幾個(gè)有趣的題目給大家。

一、為什么 1=0.9999999999……
二、為什么 alert(0.1 + 0.2)//0.30000000000000004
三、為什么 alert(0123 + 4)//87

四、

var obj1 = {}; obj1.name2 = "張三";
var str1 = "test"; str1.name2 = "李四";
alert(obj1.name2 + " " + str1.name2);
//彈出值是什么

五、

var obj1 = { name2: "111" };
var obj2 = obj1;
obj1.name2 = "222";
alert(obj2.name2);//這里彈出什么?
obj1 = { name2: "333" };
alert(obj2.name2);//這里彈出什么?

六、

 var fun = function (num1) {
     if (num1 <= 1) {
         return 1;
     }
     else {
         return num1 * fun(num1 - 1);
     }
 }
 var fun2 = fun;
 fun = function () {
     return 1;
 }
 alert(fun2(5));//這里彈出什么?

還有點(diǎn)時(shí)間在給大家介紹 JavaScript基本數(shù)據(jù)類型

  JavaScript的基本數(shù)據(jù)類型包括6種:number/string/boolean/object/function/undefined。

  2.1 number類型

  number類型用來(lái)存儲(chǔ)數(shù)值,它描述的是64位的浮點(diǎn)型數(shù)值。但Javascript并不能表示0-2e64之間的所有數(shù)值,因?yàn)樗€需要表示非整數(shù),包括復(fù)數(shù)、分?jǐn)?shù)等。對(duì)于64位來(lái)說(shuō),需要使用11位來(lái)存儲(chǔ)數(shù)字的小數(shù)部分,使用1位來(lái)表示正負(fù),所以JavaScript實(shí)際上可以表示-2e52到2e52之間的值。

  2.2 string類型

  string類型用來(lái)表示文本,可以使用單引號(hào)或者雙引號(hào)來(lái)包括文本,任何放在引號(hào)內(nèi)的符號(hào),都會(huì)被認(rèn)為是string,但對(duì)于特殊符號(hào),可能需要轉(zhuǎn)義處理。

  2.3 boolean類型

  boolean類型只包括兩個(gè)值:true和false。我們可以在程序中使用各種boolean表達(dá)式來(lái)得到true或者false,從而實(shí)現(xiàn)不同的業(yè)務(wù)分支處理。

  我們可以在表達(dá)式中包含多個(gè)條件,條件之間可以是與或非的關(guān)系,在計(jì)算時(shí),優(yōu)先級(jí)如下:||的優(yōu)先級(jí)最低,其次是&&,然后是比較運(yùn)算符,最后是其他運(yùn)算符(例如?。?/p>

  和其他許多語(yǔ)言一樣,對(duì)于&&來(lái)說(shuō),當(dāng)前面的條件為false時(shí),后面的條件不再計(jì)算,對(duì)于||來(lái)說(shuō),當(dāng)前面的條件為true時(shí),后面的條件不再計(jì)算。

  來(lái)看下面的例子:

function conditionTest(){
   var a = ;
   var b = ;
   var c = {"key":"old"};
   print(c["key"]);
   if (a==) print("a = ");
   if (a== && b==) print("a == && b == ");
   if (a== || changeValue(c)) print(c["key"]);
   if (a== && changeValue(c)) print(c["key"]);
 }
 function changeValue(obj){
   obj["key"] = "changed";
   return true;
 }

  它的輸出結(jié)果如下:

old
a = 1
a == 1 && b == 1
old
changed

  可以看出,在使用||時(shí),沒(méi)有調(diào)用changeValue方法。

  2.4 undefined類型

  當(dāng)我們聲明了一個(gè)變量,但是沒(méi)有對(duì)其賦值時(shí),它就是undefined的,就像下面這樣

 var b;
 print(b);

  在Javascript中,還有一個(gè)和undefined類似的值:null。undefined表示“變量已聲明但是沒(méi)有復(fù)制”,null表示“變量已賦值但為空”,需要注意的是undefined==null的值為true。

  2.5 類型轉(zhuǎn)換

  我們?cè)谏厦嫣岬搅藆ndefined == null的值是true,但我們使用typeof操作時(shí)可以發(fā)現(xiàn),null是object類型,這說(shuō)明在比較的過(guò)程中,發(fā)生了類型轉(zhuǎn)換。

  類型轉(zhuǎn)換是指將一種類型的值轉(zhuǎn)換成另外一種類型的值。我們使用==進(jìn)行比較時(shí),會(huì)有類型轉(zhuǎn)換,我們可以使用===來(lái)禁止類型轉(zhuǎn)換。

  來(lái)看下面的例子:

function convertTypeTest(){
   var a = ;
   var b = "";
   print ("a:" + a);
   print ("b:" + b);
   print ("type of a:" + typeof a);
   print ("type of b:" + typeof b);
   print ("a==b:" + (a == b));
   print ("a===b:" + (a === b));
   print ("a===Number(b):" + (a === Number(b)));
   print ("String(a)===b:" + (String(a) === b));
   print ("type of undefined:" + typeof undefined);
   print ("type of null:" + typeof null);
   print ("undefined==null:" + (undefined == null));
   print ("undefined===null:" + (undefined === null));
 }

  輸出結(jié)果如下:

a:1
b:1
type of a:number
type of b:string
a==b:true
a===b:false
a===Number(b):true
String(a)===b:true
type of undefined:undefined
type of null:object
undefined==null:true
undefined===null:false

可以很明顯看到==和===的區(qū)別。

相關(guān)文章

  • js parentElement和offsetParent之間的區(qū)別

    js parentElement和offsetParent之間的區(qū)別

    這里主要說(shuō)的是 offsetParent 屬性,這個(gè)屬性在 MSDN 的文檔中也沒(méi)有解釋清楚,這就讓人更難理解這個(gè)屬性。 這幾天在網(wǎng)上找了些資料看看,再加上自己的一些測(cè)試,對(duì)此屬性有了那么一點(diǎn)的了解,在這里總結(jié)一下。
    2010-03-03
  • uni-app全局變量的四種實(shí)現(xiàn)方式總結(jié)

    uni-app全局變量的四種實(shí)現(xiàn)方式總結(jié)

    在開(kāi)發(fā)的過(guò)程中,我們不可避免的用到全局變量,比如我們的請(qǐng)求的公共路徑這個(gè)變量,下面這篇文章主要給大家總結(jié)介紹了關(guān)于uni-app全局變量的四種實(shí)現(xiàn)方式,需要的朋友可以參考下
    2023-10-10
  • Javascript腳本實(shí)現(xiàn)靜態(tài)網(wǎng)頁(yè)加密實(shí)例代碼

    Javascript腳本實(shí)現(xiàn)靜態(tài)網(wǎng)頁(yè)加密實(shí)例代碼

    這篇文章介紹了Javascript腳本實(shí)現(xiàn)靜態(tài)網(wǎng)頁(yè)加密實(shí)例代碼,有需要的朋友可以參考一下
    2013-11-11
  • JS+CSS實(shí)現(xiàn)可拖動(dòng)的彈出提示框

    JS+CSS實(shí)現(xiàn)可拖動(dòng)的彈出提示框

    這篇文章主要介紹了JS+CSS實(shí)現(xiàn)可拖動(dòng)的彈出提示框,涉及針對(duì)鼠標(biāo)事件及html元素的操作技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-02-02
  • 你知道該如何捕獲js報(bào)錯(cuò)前的用戶行為嗎

    你知道該如何捕獲js報(bào)錯(cuò)前的用戶行為嗎

    這篇文章主要給大家介紹了該如何捕獲js報(bào)錯(cuò)前的用戶行為的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2023-06-06
  • JavaScript獲取頁(yè)面中第一個(gè)錨定文本的方法

    JavaScript獲取頁(yè)面中第一個(gè)錨定文本的方法

    這篇文章主要介紹了JavaScript獲取頁(yè)面中第一個(gè)錨定文本的方法,涉及javascript操作document.archors數(shù)組的技巧,需要的朋友可以參考下
    2015-04-04
  • 用JavaScript操作WinRar

    用JavaScript操作WinRar

    Blog的插入HTML功能有誤。 原來(lái)在blueidea.com上看到了用ASP執(zhí)行解壓縮動(dòng)作的文章,一直沒(méi)有去用心看,前日,趁老大不在,爽了一把,把它改成了用JavaScript操作的了。
    2008-04-04
  • JavaScript實(shí)現(xiàn)數(shù)組降維詳解

    JavaScript實(shí)現(xiàn)數(shù)組降維詳解

    大家都知道將多維數(shù)組(尤其是二維數(shù)組)轉(zhuǎn)化為一維數(shù)組是業(yè)務(wù)開(kāi)發(fā)中的常用邏輯,除了使用樸素的循環(huán)轉(zhuǎn)換以外,我們還可以利用Javascript的語(yǔ)言特性和數(shù)據(jù)結(jié)構(gòu)的思想實(shí)現(xiàn)更為簡(jiǎn)潔優(yōu)雅的轉(zhuǎn)換。下面跟著小編一起來(lái)學(xué)習(xí)學(xué)習(xí)關(guān)于JavaScript如何實(shí)現(xiàn)數(shù)組降維吧。
    2017-01-01
  • 微信小程序分包的超詳細(xì)步驟

    微信小程序分包的超詳細(xì)步驟

    分包指的是把一個(gè)完整的小程序項(xiàng)目,按照需求劃分為不同的子包,在構(gòu)建時(shí)打包成不同的分包,用戶在使用時(shí)按需進(jìn)行加載,下面這篇文章主要給大家介紹了關(guān)于微信小程序分包的相關(guān)資料,需要的朋友可以參考下
    2022-09-09
  • javascript中Math.random()使用詳解

    javascript中Math.random()使用詳解

    Math.random() 這個(gè)方法相信大家都知道,是用來(lái)生成隨機(jī)數(shù)的。不過(guò)一般的參考手冊(cè)時(shí)卻沒(méi)有說(shuō)明如何用這個(gè)方法來(lái)生成指定范圍內(nèi)的隨機(jī)數(shù)。這次我就來(lái)詳細(xì)的介紹一下Math.random(),以及如何用它來(lái)生成制定范圍內(nèi)的隨機(jī)數(shù)。
    2015-04-04

最新評(píng)論