javaScript之變量與數據類型

http://www.cnblogs.com/yuanchenqi/articles/5980312.htmljavascript

在瞭解變量以前,咱們首先學習JavaScript的引入方式html

JavaScript的引入方式

{#1 直接編寫#}
    <script>
        alert('hello zhanzhengrecheng')
    </script>


{#2 導入文件#}
    <script src="hello.js"></script>  

 

一,變量

1.1 變量的含義

  即在程序運行過程當中它的值是容許改變的量。與它對應的就是常量:即在程序運行過程當中它的值是不容許改變的量java

  js是跟python同樣一樣是弱類型的語言,python中定義變量沒有關鍵字: str = ‘james’python

可是在js中定義變量使用關鍵字:var str = ‘james’;c++

  對於便利的理解:變量是數據的代號。如同人的名字同樣。es6

var num;   // 在JavaScript中使用關鍵字var聲明一個變量

  在JavaScript中,使用上面的語法,就能夠聲明一個變量,以便在以後給其指定值。安全

var num;
    num = 128; // 這樣num作微值128的一個名字,有了名字,就能夠在以後引用!
    document.write(num);   // 輸出128

1.2  變量的聲明和定義

1.2.1 先聲明後定義

var dog;
// alert(dog) //undefined  未定義
// 定義
dog = '小黃';

1.2.2 聲明馬上定義

var dog_2 = '小紅';
console.log(dog_2); //小紅

  

1.3,變量的規範

var 34bad;//不能以數字開頭

var per人;//不能包含中文

var bad-var;//非法的-

var var;//var就是一個關鍵字,因此很明顯不能用來作變量名

1 嚴格區分大小寫

2 命名時名稱能夠出現字母、數字、下劃線、$ ,可是不能數字開頭,也不能純數字,不能包含關鍵字和保留字。

關鍵字:var number等

除了關鍵字 top name 也儘可能不使用。

關鍵詞:函數

保留字學習

javascript保留關鍵詞3d

javascript的保留關鍵字不能夠用做變量,標籤或者函數名,有些保留關鍵字是做爲javascript之後擴展使用。

 

3 推薦駝峯命名法:有多個有意義的單詞組成名稱的時候,第一個單詞的首字母小寫,其他的單詞首字母寫

4 匈牙利命名:就是根據數據類型單詞的的首字符做爲前綴

Camel 標記法
首字母是小寫的,接下來的字母都以大寫字符開頭。例如:
    var myTestValue = 0, mySecondValue = "hi";


Pascal 標記法
首字母是大寫的,接下來的字母都以大寫字符開頭。例如:
    Var MyTestValue = 0, MySecondValue = "hi";


匈牙利類型標記法
在以 Pascal 標記法命名的變量前附加一個小寫字母(或小寫字母序列),
說明該變量的類型。例如,i 表示整數,s 表示字符串,以下所示「
    Var iMyTestValue = 0, sMySecondValue = "hi";

 

 二,運算符

  js中的運算符跟python中的運算符有點相似,但也有不一樣。所謂運算,在數學上,是一種行爲,經過已知量的可能的組合,得到新的量。

2.1 賦值運算符

以var x = 12,y=5來演示示例

 

2.2 算數運算符

var a = 5,b=2

 

2.3比較運算符

var x = 5;

 

2.4 特殊狀況

  字符串拼接+字符串運算 特殊狀況。python中有拼接字符串中更簡便的辦法,其實在js中也有,你們能夠百度引擎搜索es6模板字符串。(擴展)

var  firstName  = '星';
var lastName = 'Li';
var name = '伊拉克';
var am = '美軍';
// 字符串拼接
var str = "2003年3月20日,"+name+"戰爭爆發,
以美軍爲主的聯合部隊僅用20多天就擊潰了薩達姆的軍隊。
這是繼十多年前的海灣戰爭後,"+am+"又一次取得的大規模壓倒性軍事勝利。"
var fullStr = str;
console.log(fullStr)

var fullName = firstName +" "+ lastName;
console.log(fullName)

  

// 不能對字符串進行+運算 只能拼接
var a1 = '1';
var a2 = '2';
console.log(a1-a2) //12

  

var b1 = 'one';
var b2  = 'two';

// NaN. ==== not a number 是number類型
console.log(typeof(b1*b2))

  

三,數據類型

  數據類型包括:基本數據類型和引用數據類型

  基本數據類型指的是簡單的數據段,引用數據類型指的是有多個值構成的對象。

  當咱們把變量賦值給一個變量時,解析器首先要確認的就是這個值是基本類型值仍是引用類型值

3.1 基本數據類型

var dog;
dog="小虎子"; //字符串,他們總被包含在雙引號(或單引號)中
var num;
num=1;//數字,它們裸露的出現了
var strNum;
strNum="1";//可是如今strNum所引用的是一個字符串,由於它被包含在引號中了
var badNum;
badNum=3.345;//一個小數,由於它帶有一個小數點
badNum=.2;//仍然是一個小數,這句代碼與badNum=0.2是同樣的!
badNum = 0.4.5;//固然,這句代碼是錯的,一個非法數字

  undefined

Undefined 類型
    Undefined 類型只有一個值,即 undefined。當聲明的變量未初始化時,
    該變量的默認值是 undefined。
    當函數無明確返回值時,返回的也是值 "undefined";


Null 類型
    另外一種只有一個值的類型是 Null,它只有一個專用值 null,即它的字面量。
    值 undefined 其實是從值 null 派生來的,所以 ECMAScript 把它們定義爲相等的。
    儘管這兩個值相等,但它們的含義不一樣。undefined 是聲明瞭變量但未對
    其初始化時賦予該變量的值,null 則用於表示還沒有存在的對象(在討論 typeof 
    運算符時,簡單地介紹過這一點)。若是函數或方法要返回的是對象,那麼找不
    到該對象時,返回的一般是 null。
    var person=new Person()
    var person=null

 

var d1;
//表示變量未定義
console.log(typeof d1)

  null

var c1 = null;//空對象. object
console.log(c1)

  boolean

簡介
Boolean類型僅有兩個值:true和false,也表明1和0,實際運算中true=1,false=0
布爾值也能夠看做on/off、yes/no、1/0對應true/false
Boolean值主要用於JavaScript的控制語句,例如
    if (x==1){
    y=y+1;
    }else    {
    y=y-1;
    }

 

var b1 = false;
console.log(typeof b1)

  string

var str  = '123'
console.log(typeof str)

 

3.2 字符串

簡介
是由Unicode字符、數字、標點符號組成的序列
字符串常量首尾由單引號或雙引號括起
JavaScript中沒有字符類型
經常使用特殊字符在字符串中的表達
字符串中部分特殊字符必須加上右劃線\
經常使用的轉義字符 \n:換行  \':單引號   \":雙引號  \\:右劃線

 

字符串相連

var s1="Hello,";
    s1=s1+"World!"; 
    alert(s1);
    s1+="!!!!";
    alert(s1);

  

3.3 數學運算與比較

  js中的運算符跟python中的運算符有點相似,但也有不一樣。所謂運算,在數學上,是一種行爲,經過已知量的可能的組合,得到新的量。

//加法 + 
    //減法 -
    //乘法 *
    //除法 / 
    //自增 ++
    //自減 --
    var a = 12; var b = 30; var c = a+b;
    alert(c);//輸出42
    c=b-a;
    alert(c);//輸出18
    c=c*2;
    alert(c);//輸出36
    c=c/2;
    alert(c);//輸出18
    c = 12;
    c++;//這與c=c+1;效果是同樣的
    alert(c);//輸出13
    c--;//這與c=c-1;效果是同樣的
    alert(c);//輸出11
    //自增與自減運算符出現的地方也有講究
    c=20;
    alert(c++);//輸出20,由於++寫在變量後面,這表示變量c完成運算以後,再將其值增1
    alert(c);//如今將輸出21,自減運算符也與些類似
    //若是隻是相似這樣的計算
    c = c+12; //能夠這樣寫
    c+= 12;//這與寫c= c+12;效果是同樣的
    //相似其它的運算也有簡便的方法
    c-=3;//c=c-3
    c*=4;//c=c*3;
    c/=2;//c=c/2;

  要注意的是,在JavaScript,鏈接字符串時也使用「+」號。當字符串與數字相遇時?——JavaScript是弱類型語言

var num=23+45;
alert("23+45等於"+num);//表達式從左往右計算,字符串以後的數字都會當成字符串然鏈接
alert("23+45="+(23+45));//使用括號分隔

  比較操做符:<,>,<=,>=,==,!=,!;比較操做符返回布爾值

//小於 <
//大於 >
//小於或等於 <=
//大於或等於 >=
//相等 ==
//不相等 !=
alert(2<4);//返回true
alert(2>4);//返回false
alert(2<=4);//返回true
alert(2>=2);//返回true
alert(2==2);//返回true
alert(2!=2);//返回true

  

3.4 表達式的組合

alert( (2<4)==(5>3)==(3<=3)==(2>=2)==(2!=2)==(2==2)==true );

  

3.5 邏輯運算符

// &&邏輯與,當兩邊的值都爲true時返回true,不然返回false
// || 邏輯或,當兩邊值都爲false時返回false,不然返回true
// ! 邏輯非
alert(true && false);//輸出false
alert(true && true);//輸出true
alert(true || false);//輸出true
alert(false || false);//輸出false
alert(!true);//輸出false

  

四,數據類型轉換

JavaScript屬於鬆散類型的程序語言
變量在聲明的時候並不須要指定數據類型
變量只有在賦值的時候纔會肯定數據類型
表達式中包含不一樣類型數據則在計算過程當中會強制進行類別轉換


數字 + 字符串:數字轉換爲字符串
數字 + 布爾值:true轉換爲1,false轉換爲0
字符串 + 布爾值:布爾值轉換爲字符串true或false

 

  因爲JavaScript是弱類型語言,因此咱們安全能夠將字符串和數字(兩個不一樣類型的變量)進行相加,這個咱們在前面已經演示過了,固然,不只僅能夠將字符串和數據相加,還能夠將字符串與數據相乘而不會出現腳本錯誤!

var str ="some string here!"; var num = 123;
    alert(str*num);//將輸出NaN,由於乘法運算符只能針對數字,
    //因此進行運算時計算機會將字段串轉換成數字
    //而這裏的字符串轉換成數字將會是NaN
    //NaN是一個特殊的值,含義是"Not A Number"-不是一個數字,
    //當將其它值轉換成數字失敗時會獲得這個值
    str ="2";
    alert(str*num);//將輸出246,由於str能夠解析成數字2    

  

var bool = true;
    alert(bool*1);//輸出1 ,布爾值true轉換成數字爲1,事實上將其它值轉換在數字最簡單的方法就是將其乘以1
    bool = false;
    alert(bool*1);//輸出0
    alert(bool+"");//輸出"flase",將其它類型轉換成字符串的最簡單的方法就是將其寫一個空字符串相連
    alert(123+"");//數字總能轉換成字符串
    var str = "some string";
    alert(!!str);//true,由於非運算符是針對布爾值進行運算的,因此將其它類型轉換成布爾值只須將其連續非兩次
    str ="";
    alert(!!str);//輸出false,只有空字符串轉換成布爾值時會是false,非空字符串轉換成布爾值都會返回true
    var num =0;
    alert(!!num);//false
    num=-123.345;
    alert(!!num);//true,除0之外的任何數字轉換成布爾值都會是true
    //還有一個很是重要的是,空字符串轉換成數字將會是0
    alert(""*1);//輸出0

  獲取變量類型 typeof 運算符

var bool = true;
    alert(typeof bool);//輸出boolean
    var num =123;
    alert(typeof num);//輸出number
    var str = "some string here";
    alert(typeof str);//輸出string
    var strNum = "123";
    alert(typeof strNum);//輸出string
    strNum *= 1;
    alert(typeof strNum);//輸出number

 

4.1 將數值類型轉化成字符串類型

var n1 = 123;
var n2 = '123';
var n3 = n1+n2;
// 隱式轉換
console.log(typeof n3);

  

// 強制類型轉換String(),toString()
var str1 = String(n1);
console.log(typeof str1);

var num = 234;
console.log(num.toString())

  

4.2 將字符串類型轉化成數值類型

var  stringNum = '789.123wadjhkd';
var num2 =  Number(stringNum);
console.log(num2)

// parseInt()能夠解析一個字符串 而且返回一個整數
console.log(parseInt(stringNum))
console.log(parseFloat(stringNum));

  

4.3 任何數據類型均可以轉換成boolean類型

var b1 = '123';
var b2 = 0;
var b3 = -123

var b4 = Infinity; 
var b5 = NaN;

var b6; //undefined
var b7 = null;

// 非0既真
console.log(Boolean(b7))
相關文章
相關標籤/搜索