Javascript開發技巧(JS中的變量、運算符、分支結構、循環結構)

一、Js簡介和入門

?繼續跟進JS開發的相關教程。

?

?

<!-- [使用JS的三種方式]

1、HTML標簽中內嵌JS(不提倡使用):

示例:<button οnclick="javascript:alert('你真點啊!')">有本事點我呀!!!</button>

?

2、HTML頁面中直接使用JS:

<script type="text/javascript">

//JS代碼

</script>

?

3、引用外部JS文件:

<script language="JavaScript" src="JS文件路徑"></script>

?

[注意事項]

① 頁面中JS代碼與引用JS代碼,可以嵌入到HTML頁面的任何位置。但是,位置不同會影響到JS代碼的執行順序;

?例如:<script>在body前面,會在頁面加載之前執行JS代碼;

?

② 頁面中JS代碼,使用type="text/javascript"

? ?引用外部的JS文件,使用language="JavaScript"

? ?

③ 引用外部JS文件的<script></script>標簽,必須成對出現,且標簽內部不能有任何代碼!

?

-->

?

<script type="text/javascript">

//JS中的注釋

// 單行注釋。 Ctrl+/

/*

? ? ?段落注釋。 ?Ctrl+Shift+/

*/

//document.write("<h1>姜浩真帥!</h1>");

?

?

/* 【JS中的變量】

* 1、JS中變量聲明的寫法:

* ?var width = 10; //使用var聲明的變量,只在當前函數作用域有效

?width1 = 11; //不使用var,直接賦值生成的變量,默認為全局變量,整個JS文件有效

?var a,b,c=1; //同一聲明語句同時聲明多個變量,變量之間用英文逗號分隔。但,賦值需要單獨賦,例如上式中,只有c賦為1,a/b為undefined(未定義)

?

?[聲明變量注意事項]

① JS中所有變量類型聲明,均使用var關鍵字。變量的具體數據類型,取決于給變量賦值的類型

?

② 同一變量,可以在多次不同賦值時,修改變量的數據類型:

?var width = 10;//width 為整形變量

?width="哈哈";//width 被改為字符串類型

?

③ 變量可以使用var聲明,也可以省略var。[區別]不使用var,默認為全局變量

?

④ 同一變量名,可以多次用var聲明。但是并沒有任何含義,也不會報錯。第二次之后的聲明,只會被理解為賦值;

?

2、變量的命名規范:

? ① 變量名,只能有字母、數字、下劃線、$ 組成

? ② 開頭不能是數字

? ③ 變量區分大小寫,大寫字母與小寫字母為不同變量

?

3、變量名命名要符合駝峰法則:

? ? ? 變量開頭為小寫,之后每個單詞首字母大寫(或單詞之間用下劃線分隔);

? jiangHaoIsShuaiGe √

? jiang_hao_is_shuai_ge √?

? jianghaoisshuaige ×

??

4、JS中的變量的數據類型

Undefined:未定義,用var聲明的變量,沒有進行初始化賦值。 var a;

Null:表示為空的引用。例如,空對象、空數組。

Boolean:真假,可選值 true/false

Number:數值類型。可以是小數,也可以是整數。

String:字符串類型。用""或''包裹的內容,成為字符串。

Object(復雜數據類型):后續講解,函數、數組等。。。

?

5、常用的數值函數:

? ① isNaN():用于判斷一個變量或常量,是否為NaN(非數值)

? ? 使用isNaN判斷時,會嘗試使用Number()函數進行轉換,如果能轉換為數字,則不是非數值,結果為false

?"111" 純數字字符串,false "" 空字符串,false "1a"包含其他字符,true

?true/false 布爾類型,false

?

? ② Number():將其他類型轉換為數值類型

? [字符串類型轉數值]

? >>> 字符串為純數值字符串,會轉為對應的數字 ?"111"->111

? >>> 字符串為空字符串是,會轉為0 ?""->0

? >>> 字符串包含其他非數字字符時,不能轉換 ? "111a"->NaN

??

? [布爾Boolean類型轉數值]

? true -> 1 ? ? false -> 0

??

? [null/Undefined轉數值]

? null -> 0 ? ? Undefined -> NaN

??

? [Object類型轉數值]

? *(以后再了解) 先調用ValueOf方法,確定函數是否有返回值,再根據上述各種情況判斷。

??

? ③ parseInt:將字符串轉為數值類型

? >>> 空字符串,不能轉。結果為NaN

? >>> 純數值字符串,能轉。 "123" -> "123" ?"123.5" -> 123 (小數轉化時,直接抹掉小數點,不進行四舍五入)

? >>> 包含其他字符的字符串。會截取第一個非數值字符前的數值部分。

? ? ? "123a456" -> 123 ? "a123b456" -> NaN

? ? ??

? >>> parseInt只能轉String類型,Boolean/null/Undefined 均為NaN

??

? ④ parseFloat:將字符串轉為數值

? >>> 使用方式同parseInt。但是,當轉化小數字符串時,保留小數點;轉化整數字符串時,保留整數;

? ? ? "123.5" -> 123.5 ? ? ?"123" -> 123

? ? ??

? ⑤ typeof:用來檢測變量數據類型

? 未定義 -> Undefined字符串 -> Stringtrue/false -> boolean

? 數值 ?-> Number對象/null -> Object ? 函數 -> function?

?

?

*/

var a; //聲明變量

a=10;//給變量賦值

?

var width = 10;//聲明變量的同時,直接賦值

?

width="哈哈";

?

var x,y=9,z=10;

?

var b = {};

?

alert(d);

?

?

?

/* [JS中的輸出語句]

*?

* document.write();

* 輸出語句,將write的()中的內容打印在瀏覽器屏幕上;

*?

* 使用時注意:除變量/常量以外的任何內容,打印時必須放到""中。變量/常量必須放到""外。?

* 打印的內容同時有多部分組成時,之間用+鏈接:

* 例如:document.write("左手中的紙牌:"+left+"<br/>");

*?

* alert();

* 彈窗警告,()中的使用方式,同上

*/

?

?

?

?

</script>

?

<script language="JavaScript" src=""></script>

</head>

?

?

<body>

<button οnclick="javascript:alert('小碧池!你真點啊!')">有本事點我呀!!!</button>

?

?

?

</body>

?

</html>

?

?

二、JS中的運算符

?

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title></title>

<script type="text/javascript">

?

/*

算術運算

? ? ?+ 加、- 減、* 乘、 / 除、 % 取余、++ 自增、-- 自減

? ? ?

? ? ?

? ? ?

? ? ?+:有兩種作用,鏈接字符串/加法運算;當+兩邊均為數字時,進行加減運算;當+兩邊有任意一邊為字符串時,

? ? ?進行字符串鏈接,鏈接之后的結果仍為字符串。

? ? ?

? ? ?++:自增運算符,將變量在原來的基礎上加1;

? ? ?--:自減運算符,將變量在原來的基礎上減1;

? ? ?

? ? ?

? ? ?【n++與++n的異同】

? ? ?n++:先使用n的值進行計算,計算完然后再把n+1;

? ? ?++n:先把n的值+1,然后再把n+1的值 去運算

? ? ?

? ? ?相同點:不論n++還是++n,在執行完代碼之后,均會把a的值+1;

? ? ?案例:var a = 3;

?var b,c;

? ? ?b = a++ +2; // a=3 b=5 a=4

? ? ?c = ++a +2; // a=4 a=5 c=7

? ? ?document.write( abc ? )為557

? ? ?

? ? ?————————————————————————————————————————————————

? ? ?

?賦值運算

? ? ?= 賦值 ? ? += ? ? -= ?*= ?/= ?%=

? ? ?

? ? ?+=:a+=5;相當于a=a+5;但是前者的執行效率要比后者快

? ? ?————————————————————————————————————————————————

?

關系運算

? ? ?== 等于號、===嚴格等于、 ?!= 不等于、>、<、>=、<=

? ? ?

? ? ?===:嚴格等于:①類型不同直接返回FALSE ; ?②類型相同再進型下一步判斷;

? ? ?==:等于:①類型相同同===; ②類型不同,將等式兩邊均用number函數轉位數字,在判斷;

? ? ?[注意例外]

? ? ?null==undefined √;null===undefined ×

? ? ?document.write(123=="123")成立;

? ? ?————————————————————————————————————————————————

?

條件運算符(多目運算)

? ? ?a>b ? true : false?

? ? ?

? ? ?有兩個關鍵符號:?和:

? ? ?當?前面的部分運算結果為TRUE時,執行:前面的代碼;

? ? ?當?前面的部分運算結果為FALSE時,執行:后面的代碼;

? ? ?

? ? ?多目運算符可以多層嵌套

? ? ?例如:

? ? ?

? ? ? ————————————————————————————————————————————————

? 邏輯運算符

? ? ?&& 與、|| 或、!非

? ? ?

? ? ?____________________________________________________________________________________________________________________

? ? ?

? ? ?【運算符優先級】

? ? ?()

?! ?++ --

?% ?/ ?*

?+ -

?> ? < ? >= ? ?<=

?== ? !=

?&&

?||

?各種賦值= += ?*= ?/= ? %=

?

* */

?

?

?

?

?

?

</script>

?

?

</head>

<body>

?

?

</body>

</html>

?

?

?

三、JS中的分支結構

?

?

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title></title>

?

<script type="text/javascript">

/*【if-else結構】

1、結構寫法:

if(判斷條件){

//條件為true時執行

}else{

//條件為false時執行

}

2、if()中的表達式,運算之后的結果應該為:

① Boolean: true 真false 假

② String:非空字符串為真空字符串為假

③ Number:0為假一切非0,均為真

④ Null/NaN/Undefined: 全為假

⑤ Object:全為真

3、else{}結構,可以根據具體情況省略;

*/

var num = {};

?

if(num){

//條件為true時執行

document.write("if條件成立");

}else{

//條件為false時執行

document.write("if條件不成立");

}

// num<10?document.write("if條件成立"):document.write("if條件不成立");

?

?

?

/* 【多重if、階梯if】

1、結構寫法:

if(條件一){

// 條件一成立

} else if(條件二){

// 條件一不成立&&條件二成立

?

// else-if 部分,可以有N多個

} else{

// 條件一不成立&&條件二不成立

}

?

2、多重if結構中,各個判斷條件是互斥的!只能選擇其中一條路。

?

3、if/else的{}可以省略,但是一般不提倡;

如果省略{} 則,if/else結構包含的代碼,僅為其后最近的一行(分號結束);

如果省略{} 則,else結構永遠屬于其前方最近的一個if結構。

?

*/

var num2 = 5;

if(num2>5){

document.write("輸入過大");

} else if(num2<5){

document.write("輸入過小");

} else if(num2==5){

document.write("輸入正確");

}

?

if(num2==5) document.write("輸入過大");

?

if(num2==5) document.write("輸入過大");

else document.write("11");

?

document.write("22");

?

?

/* 【嵌套if結構】

1、結構寫法:

if(條件一){

// 條件一成立

if(條件二){

// 條件一成立&&條件二也成立

}else{

// 條件一成立&&條件二不成立

}

}else{

//條件一不成立

}

?

2、if結構可以多重嵌套,但是原則上不超過3層

*/

?

?

?

?

?

/* 【Switch-Case結構】

1、結構寫法:

switch(表達式){

case 常量表達式1:

語句1;

break;

case 常量表達式2:

語句2;

break;

……

default:

語句N

break;

}

2、注意事項:

? ?① switch()中的表達式,以及每個case后面的表達式,可以為任何JS支持的數據類型(對象和數組不行);

? ?② case后面的所有常量表達式,必須各不相同,否則只會執行第一個;

? ?③ case后的常量可以是任何數據類型;同一個switch結構的不同case,可以是多種不同的數據類型;

? ?④ switch在進行判斷的時候,采用的是全等判斷===。

? ?⑤ break的作用:執行完case代碼后,跳出當前switch結構;

? ? ? ? ? ? ? ?缺少break的后果:從正確的case項開始,依次執行所有的case和default。原因:⑥↓

? ?⑥ switch結構在判斷時,只會判斷一次正確答案,當遇到正確的case項后,將會不再判斷后續項目。依次往下執行。

? ?⑦ switch結構的執行速率要快于多重if結構。在多路分支時,可優先考慮使用switch結構。

*/

var num4 = 5;

switch (num4){

case 4:

document.write("這是9的case塊!");

//break;

case 5:

document.write("這是10的case塊!");

//break;

case 6:

document.write("這是11的case塊!");

//break;

default:

document.write("這是default的case塊!");

break;

}

?

?

?

</script>

?

?

?

</head>

?

?

<body>

</body>

</html>

?

?

?

四、JS中的循環結構

?

?

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title></title>

?

<script type="text/javascript">

?

/* 【循環結構的步驟】

① 聲明循環變量

② 判斷循環條件

③ 執行循環體(while的{}中所有代碼)操作

④ 更新循環變量

?然后,循環執行② ③ ④

?

?【JS中循環條件支持的數據類型】

① Boolean: true 真false 假

② String:非空字符串為真空字符串為假

③ Number:0為假一切非0,均為真

④ Null/NaN/Undefined: 全為假

⑤ Object:全為真

?

*/

?

/*

* while循環特點:先判斷,再執行;

* do-while循環特點:先執行,再判斷;即便初始條件不成立,do-while循環也至少執行一次;

*/

?

var n = 1; // ① 聲明循環變量

while (n<=5){ // ② 判斷循環條件

document.write("HelloWhile<br />");// ③ 執行循環體操作

n++;// ④ 更新循環變量

}

?

var m = 1;

do{

document.write("HelloDoWhile<br />");

m++;

}while(m<=5);

?

/* 【for循環】

1、for循環有三個表達式,分別為:①定義循環變量 ②判斷循環條件 ③更新循環變量

三個表達式之間,用;分隔。

for循環三個表達式均可以省略,兩個;缺一不可

2、for循環特點:先判斷,再執行;

3、for循環三個表達式,均可以有多部分組成,之間用逗號分隔;但是,第二部分判斷條件需要用&&鏈接,最終結果需要為真/假

*/

?

?

/*

* 1-100求和,采用首尾相加

* (1+100)+(2+99)+……+(50+51)=5050

*/

//for (var n=1,j=5;n<=3&&j>=1;n++,j--) {

//document.write("HelloFor<br />");

//document.write(n+"/"+j);

//}

var sum = 0;

for (var i=1,j=100;i<j;i++,j--) {

if(i<50) document.write("("+i+"+"+j+")+");

else document.write("("+i+"+"+j+")=");

sum+=(i+j);

}

document.write(sum);

?

?

?

</script>

?

?

</head>

<body>

</body>

</html>

?

轉載于:https://www.cnblogs.com/liuyongqi/p/6667009.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/541663.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/541663.shtml
英文地址,請注明出處:http://en.pswp.cn/news/541663.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

android 顏色范圍,Android系統顏色的適用范圍

###All Clickable Views:ripple effect (Lollipop only) — “colorControlHighlight”###Status Bar:background (Lollipop only) – “colorPrimaryDark”###Navigation Bar:background (Lollipop only) – “android:navigationBarColor”###EditText:underline (unfocused)…

bytevalue_Java Short類byteValue()方法及示例

bytevalue短類byteValue()方法 (Short class byteValue() method) byteValue() method is available in java.lang package. byteValue()方法在java.lang包中可用。 byteValue() method is used to return the value denoted by this Short object converted to type byte (by …

分布式交換機配置備份和還原

1.備份和還原vSphere Distributed Switch配置 1.1導出 vSphere Distributed Switch 配置 可以將 vSphere Distributed Switch 和分布式端口組配置導出到某一文件。該文件保留有效的網絡配置&#xff0c;使這些配置能夠傳輸至其他環境。 步驟&#xff1a; 1) 在 vSphere Web Cli…

html自動執行函數,JS 自執行函數原理及用法

js自執行函數&#xff0c;聽到這個名字&#xff0c;首先會聯想到函數。接下來&#xff0c;我來定義一個函數&#xff1a;function aaa(a,b){return sum a b}定義了一個名為aaa的函數&#xff0c;在里面可以計算兩個數的和。如果想執行它&#xff0c;就必須得調用它&#xff0…

java reverse_Java Integer類reverse()方法與示例

java reverse整數類reverse()方法 (Integer class reverse() method) reverse() method is available in java.lang package. reverse()方法在java.lang包中可用。 reverse() method is used to returns the value generated by reversing the order of bits in binary 2s comp…

華為鴻蒙系統好在哪,華為鴻蒙2.0可以替代安卓嗎,華為鴻蒙2.0優勢在哪

在華為開發者大會上&#xff0c;華為消費業務CEO 余承東&#xff0c;正式發布鴻蒙OS2.0&#xff0c;并宣布華為鴻蒙OS將全面啟用全場景生態&#xff0c;并將于2020年12月發布手機版。余承東還表示&#xff0c;明年&#xff0c;華為的智能手機將全面升級&#xff0c;以支持鴻蒙操…

Java GregorianCalendar add()方法與示例

GregorianCalendar類的add()方法 (GregorianCalendar Class add() method) add() method is available in java.util package. add()方法在java.util包中可用。 add() method is used to add the given quantity to the specified GregorianCalendar field (fi). add()方法用于…

JVM(三)——對象的訪問定位

JVM&#xff08;三&#xff09;——對象的訪問定位創建完對象&#xff0c;到了使用對象的時候&#xff0c;通常聲明一個同類型的引用指向該類型的對象&#xff0c;由這個引用來操作對象的字段、方法等。 Object obj new Object();復制代碼我們的Java程序需要通過棧上的 refere…

html5滑動刪除置頂,html5向左滑動刪除特效

html5向左滑動刪除特效* {padding: 0;margin: 0;list-style: none;}header {background: #f7483b;border-bottom: 1px solid #ccc}header h2 {text-align: center;line-height: 54px;font-size: 16px;color: #fff}.list-ul {overflow: hidden}.list-li {line-height: 60px;bord…

Java Double類hashCode()方法及示例

雙類hashCode()方法 (Double class hashCode() method) hashCode() method is available in java.lang package. hashCode()方法在java.lang包中可用。 hashCode() method is used to return hashcode of the Double-object. hashCode()方法用于返回Double對象的哈希碼。 hashC…

Java DataOutputStream size()方法及示例

DataOutputStream類的size()方法 (DataOutputStream Class size() method) size() method is available in java.io package. size()方法在java.io包中可用。 size() method is used to return the size of this stream or in other words, we can say it returns the value of…

html怎樣讓列表向下移動,Html無序列表ul控件實現行上下移動.

new document // 創建一個ulvar ul document.createElement("ul");ul.id "oList";// 創建divvar div document.getElementById(mergeCase);// 把ul放置到div中div.appendChild(ul);// 遍歷所有的li條目function trace(){var strTest "";for …

創建laravel項目

下載項目到本地 git clone https://github.com/251068550/LaraBlog.gitcompoer安裝 cd LaraBlog composer install如果composer install安裝很慢&#xff0c;推薦安裝國內鏡像 執行 composer config -g repo.packagist composer https://packagist.phpcomposer.com 配置.env文件…

Java ArrayList removeRange()方法與示例

ArrayList類removeRange()方法 (ArrayList Class removeRange() method) removeRange() method is available in java.util package. removeRange()方法在java.util包中可用。 removeRange() method is used to remove the elements whose range is between st_in(start index)…

Spring注釋事務失效及解決辦法

如果帶上事務&#xff0c;那么用annotation方式的事務注解和bean配置&#xff0c;事務會失效&#xff0c;要將service bean配置到xml文件中才行 在主容器中&#xff08;applicationContext.xml&#xff09;&#xff0c;將Controller的注解排除掉 <context:component-scan …

html5畫分形圖形,2.5 繪制透明圖形 - HTML5 Canvas 實戰

對于需要圖形分層的應用&#xff0c;經常需要處理透明度。本節&#xff0c;我們將學習如何使用全局透明度設置圖形的透明度。圖2-5 繪制透明圖形繪制步驟按照以下步驟&#xff0c;在一個不透明的矩形之上&#xff0c;繪制一個透明的圓&#xff1a;1. 定義2D畫布上下文&#xff…

計算機網絡子網劃分_子網劃分和超網| 計算機網絡

計算機網絡子網劃分1)子網劃分 (1) Subnetting) Subnetting is a concept of diving a block of addresses into sub-blocks of addresses. During the era of classful addressing (as it’s obscured now), subnetting was introduced. Say, an organization is granted a la…

html5錄音功能代碼,recorder.js 基于 HTML5 實現錄音功能

recorder.js 基于 HTML5 實現錄音功能2020-06-23 01:49:56recorder.jsmicrophone基于HTML5的錄音功能&#xff0c;輸出格式為mp3文件。前言完全依賴H5原生API所涉及的API&#xff1a;WebRTC、AudioContext、Worker、Video/Audio API、Blob、URL兼容性Chrome、FF、Edge、QQ、360…

data.frame類型數據如何將第一列值替換為行號

data.frame類型數據如何將第一列值替換為行號 row.names(data) <- data[, 1]data <- data[, -1]

html5頁面引入jquery,如何在javascript中引入jQuery?

jquery是一個用來代替JavaScript來快捷書寫前端腳本語言的庫&#xff0c;jquery可以大大的簡化復雜的js代碼&#xff0c;使開發人員專注于實現頁面的效果。jquery的導入方式有兩種&#xff0c;一種是本地導入&#xff0c;一種是從超鏈接導入。方式一&#xff1a;本地導入我們可…