1. 程式人生 > >JS基礎-變量及輸入輸出和運算符的使用

JS基礎-變量及輸入輸出和運算符的使用

普通 鏈接 () 例如 strong 函數 彈窗 pass 字符串

一、什麽是JavaScript?

再講JS的基礎之前,先讓我們了解一下什麽是JS吧。

JS,全稱JavaScript。是t一種直譯式腳本語言,是一種動態類型、弱類型、基於原型的語言,內置支持類型。它的解釋器被稱為JavaScript引擎,為瀏覽器的一部分,廣泛用於客戶端的腳本語言,最早是在HTML(標準通用標記語言下的一個應用)網頁上使用,用來給HTML網頁增加動態功能。


二、使用JS的三種方式

1、在HTML標簽中直接內嵌JS():並不提倡使用。
  

<button onclick="alert(‘小婊砸!你真點啊!‘)">有本事點我啊!!</button>

  >>>不符合w3c內容與行為分離的要求!!!


2、在html頁面中使用<script></script>包裹JS代碼:

  < script type="text/javascript">
    //JS代碼;
  </script>

  >>>Script標簽可以放到頁面中的任何位置。

3、引入外部的JS文件,使用<script></script>標簽:

<script language="JavaScript" src="js/01.js"></script
>

[註意事項]
①<script></script>可以嵌入到頁面的任意位置。但是,位置的不同會導致JS代碼的執行順序不同
  比如<script></script>放到<body>前面,則JS代碼會在頁面加載之前就執行
②引入外部的JS代碼,<script></script>必須是成堆的標簽。而且,標簽中不能再有任何的代碼。


三、JS中的變量

1、JS中變量聲明的寫法;
  var num = 10; //使用var聲明的變量,屬於局部變量,只在當前作用域內有效。
  num = 10; //不用var聲明的變量,默認為全局變量,在整個JS文件中都有效。
  var = x=8,y,z=10; //使用一行語句同時聲明多個變量。上式中,y屬於已聲明,但未賦值狀態,結果為undefined;

[聲明變量的註意事項]


  ①JS中所有變量的聲明,均使用var關鍵字。變量具體是什麽數據類型,取決於給變量賦值的類型;
  ②JS中同一個變量,可以在多次不同賦值時,修改變量的數據類型;
  var a = 10; //從初始聲明,是a屬於整數型;
  a = "哈哈哈"; //重復賦值時,整數型的a被修改為字符串類型;
  ③變量可以使用var聲明,也可以不實用var聲明。

  [區別]使用var聲明為局部變量,不實用var聲明為全局變量;

  ④只用var聲明,但是不賦值,結果為undefined;
  例如: var a; // a為undefined。但是,如果不聲明也不賦值的a,直接使用會報錯。
  ⑤同一變量名可以多次使用var聲明。但是,後面的var並沒有任何卵用。第二次再使用var聲明時,只會被理解為普通的賦值操作。

2、變量名的命名要求:
  ①變量名,只能有字母、數字、下劃線組成;
  ②開頭 不能是數字;
  ③變量名區分大小寫,大寫字母與小寫字母為不同變量;

3、變量名的命名規範:
  ①要符合小駝峰法則:
  首字母小寫,之後每個單詞的首字母大寫;var myNameIsSong = 1; ?
  ②或者使用匈牙利命名法:
  所有字母小寫,單次之間用_分隔;var my_name_is_song = 1; ?
  ③var mynameissong = 1; ?,能用,但是不規範。
  

4、JS中的數據類型

  ①Undefined:未定義。已經使用var聲明的變量,但是沒有賦值。如,var a;
  ②Null:表示空的引用。
  ③boolean:布爾類型。表示真假,只有兩個值: true/false
  ④Number:數值類型。可以是整數,也可以是小數;
  ⑤String:字符串類型。用雙引號或單引號包裹的內容,稱為字符串;
  ⑥Object:對象類型。

5、常用的數值函數
  ①isNaN(): 判斷一個變量或常量,是否是NaN(not a num 非數值);
    使用isNaN()判斷時,會嘗試 使用Number()函數進行轉換,如果最終結果能夠轉為數字,則不是NaN,結果為false。
  ②Number()函數: 將其他類型的數據,嘗試轉為數值型;

  var num = 1;
  alert(Number(num));

[字符串類型]
  >>>字符串為純數值字符串,會轉為對應的數字;"111"->111
  >>>字符串為空字符串,會轉為0; ""->0
  >>>字符串包含任何其他字符串時,都不能轉; "1a"->NaN
  
[布爾類型]
  true -> 1; false -> 0

[Null/Undefined]
   Null -> 0; Undefined -> 1

[Object]

  ③ ParseInt(): 將字符串轉為整數類型;
  >>>純數值字符串,能轉。 "12" -> 12; "12.9" -> 12;(小數轉化時,直接抹掉小數點,不進行四舍五入)
  >>>空字符串,不能轉,"" -> NaN
  >>>包含其他字符的字符傳,會截取第一個非數值字符串前的數字部分;"123a456" -> 123; "a123b456" -> NaN
  >>>PassInt()只能轉字符串,轉其他類型,全是NaN。

[Number函數與ParseInt函數的區別]
  1、Number函數能轉各種數據類型,ParseInt函數只能轉字符串。
  2、兩者在轉字符串時,結果不完全相同。(詳見上面解釋)
  
   ④ParseFloat:將字符串轉為數值型;
  轉換規則與ParseInt相同,值是如果有小數,則保留小數點:如果沒有小數,則依然是正數
   "12.5" -> 12.5; "12" -> 12;
  
  ⑤typeof:檢測變量的數據類型:
   字符串 -> String 未定義 -> Undefined true/flase -> Boolean
   數值 -> Number 對象/Null -> Object 函數 -> function


四、JS中常用的輸入輸出語句

1、document.write(); 將()中的內容打印輸出到瀏覽器屏幕上;
  使用時需註意:除變量/常量外的所有內容,必須放到""中。變量和常量必須放到""外面
  
  如果同時有變量和字符串,必須用+鏈接;

var num1 = prompt("請輸入第一個數");
var num2 = prompt("請輸入第二個數");
var sum  = parseFloat(num1) + parseFloat(num2)
alert("結果是"+sum);

  2、alert():使用彈窗輸出;
  彈窗警告,()中的內容與上述要求相同。
  3、promt(); 彈窗輸入;
    接受兩部分參數:
    ①輸入框上面的提示內容,可選;
    ②輸入框裏面的默認信息,可選;
    當只寫一部分時,表示輸入框上面的提示內容;
  可以定義變量,接收輸入的內容。點擊確定按鈕,變量將被賦值為輸入的內容,點擊取消按鈕,變量將被賦值為null。
  輸入內容時,默認接收的數據類型都是字符串!!!


五、運算符的使用

1、算術運算(單目運算符)
+ 加、 -減、 *乘、 /除、 %取余、 ++ 自增、 --自減
  >>> +:有兩種作用,鏈接字符串/加法運算。當+兩邊全為數字時,運行加法運算;
    當+兩邊有任意一邊為字符串時,起鏈接字符串的作用,鏈接之後的結果為字符串。
    除+外,其余符號運算時,會先嘗試將左右變量用Number函數轉為數字。
  >>> /:結果將會保留小數點。
  >>> ++:自增運算符,將變量在原有基礎上+1。
  >>> --:自減運算符,將變量在原有基礎上-1。

【a++和++a的異同】
  ①相同點:無論是a++還是++a,運算完以後,a的值均會+1;
  ②不同點:a++,先用a的值去運算,再把a+1;
       ++a,先把a+1,在用a+1以後的值去運算;

<script type="text/javascript">
    var a= 3,b,c;
    b = a++ +2;   //先用a運算,b=3+2  再把a+1,a+4
    c = ++a +2;   //先把a+1,a=5,在用a+1以後的值去運算,c5+2
    alert(a)
    alert(b)
    alert(c)
</script>

2、 賦值運算
= 賦值、 += -= *= /= %=

  +=: a+=b;相當於 a=a+b;但是,前者的運算效率要比後者快,所以推薦使用+=的寫法;

  其余的運算符類似。

3、關系運算
== 等於、===全等(嚴格等於)、 != 不等、 !== 不全等、 >、<、>=、<=

  >>>關系運算符,運算之後的結果,只能Boolean類型
  >>>判斷一個數字是否處於某個區間,必須用&&鏈接;
  a<10 && a>0;? 10>a>0;?
  >>> ===:嚴格等於;要求不但要類型相同,值也必須相同;類型不同,結果直接為false;類型相同,在進行下一步判斷;
    ==: 等於。類型相同,與===效果一樣。類型不同時會先嘗試用Number函數將兩邊轉為數字,然後再進行判斷。
      但是有個別特例,如: Null==false;? Null==Undefined;?

4、條件運算符(多目運算)
a>b?true:false

  有兩個重要符號:
  當?前面部分運算結果為true時,執行:前面的代碼
  當?前面部分運算結果為false時,執行:後面的代碼
  冒號兩邊可以為數值,則整個式子可用於賦值。var a = 1<2?1:2;
  冒號兩邊可以為代碼塊,將直接執行代碼。1<2?alert(1):alert(2);
  多目運算符可以多層嵌套。var a = 1<2?alert(1):(1>0?4:5);

5、位運算符、 邏輯運算符
&&與、 ||或 、!非

  &&: 兩邊都成立,結果為true
  ||: 兩邊有任意一邊成立,結果為true

6、運算符的優先級:
() //小括號最高
! 、++ 、 -- //單目運算符
* 、 / 、 %
+ 、 -
> 、 < 、 >= 、 <=
== 、 !=
&& //與或同時存在時,&&比||高
||
= 、 += 、 -= 、 *= 、 /= //最低的是各種賦值

JS基礎-變量及輸入輸出和運算符的使用