1. 程式人生 > >WEB學習Day04——js學習01

WEB學習Day04——js學習01

04.01_JavaScript簡介

  • 概述

    • 1995年,網景公司與Sun公司合作完成的
    • 是基於物件和事件驅動的指令碼語言,應用在客戶端,簡稱js
    • 基於物件:提供了很多物件,直接拿過來使用
    • 事件驅動:html做網站靜態效果,js實現動態效果
    • 客戶端:專門指的是瀏覽器
  • js的作用:操作html和css

  • 特點

    • 互動性:實現資訊的動態互動
    • 安全性:不可以直接訪問磁碟上的檔案
    • 跨平臺性:只要是可以解析js的瀏覽器都可以使用,和平臺無關
  • js和Java之間的關係

    • 【雷鋒和雷峰塔】:js和java沒有任何關係,屬於兩門程式語言
    • 開發公司
      • java:Sun
      • js:網景公司
    • 物件
      • java;面向物件
      • js:基於物件
    • 資料型別
      • java;強型別的語言【每個變數必須指定具體的資料型別】 int i = 10
      • js:弱型別語言【變數的資料型別由值決定】var i = 10 Python中: i = 10
  • js的組成

    • ECMAScript:
      • ECMA:歐洲計算機協會
      • 由ECMA組織指定js的一系列的語法
    • BOM
      • Broswer Object Model,瀏覽器物件模型
    • DOM
      • Docuement Object Model,文件物件模型

04.02_ js和html的結合方式

方式一:直接使用標籤:
<script  type="text/javascript">  js程式碼</script>
方式二:使用script標籤,引入外部js檔案
<script  type="text/javascript" src="js檔案的路徑">  js程式碼</script>
  • 注意:

script標籤可以出現多次,可以出現在html檔案中任何地方,建議寫在之間

js程式碼和html程式碼執行的順序:從上往下依次執行

04.03_ js中的註釋

* 單行://           【ctrl+/】
* 多行:/*xxxxxx*/   【ctrl + shift+ /】

04.04_ js變數

  • 變數定義
    • 使用關鍵字var(variety–品種,變化)
  • 變數的命名規則
    • a.可以由數字,字母,下劃線,美元符號$組成
    • b.不能由數字開頭
    • c.不要包含空格和中文
    • d.不能使用保留字和關鍵字
    • e.嚴格區分大小寫,如:age和Age是兩個變數
    • f.遵循駝峰命名法, stuScore StuScore

04.05_ js的資料型別

  • 一般的資料型別

    • Boolean:布林型別
    • Number:數字型別
    • String:字串
    • Object:物件
    • Array:陣列【類似於Python中列表】
    • Funtion:函式型別
    • RegExp:正則表示式
  • 特殊的資料型別

    • null:當定義了一個變數之後,但是這個變數沒有任何的指向,則它的型別就是null,
    • 使用typeof操作符判斷null獲取的結果為object
    • undefined:定義一個變數,但是沒有賦初始值
    • NaN:Not a Number,不是一個數字

04.06_ js中的運算子

  • 算術運算子:
    • ++ :自增運算子
    • –   :自減運算子
  • 邏輯運算子
    • js:&& 且   || 或   ! 非
  • 關係運算符
    • 和Python中一樣
  • 賦值運算子
    • =
    • +=
    • -=
  • 三元(目)運算子:
    • 格式:關係表示式?表示式1【變數1或者常量1】:表示式2【變數1或者常量1】;
    • 工作原理:如果關係運算符成立,則返回表示式1的值,否則返回表示式2的值
  • ==和===之間的區別
    • ==值比較字面值,不關心資料型別
    • ===比較字面值和資料型別

04.07_ js中的選擇和迴圈語句

  • 順序語句,分支語句,迴圈語句
  • js中的語句:
    • 分支語句:if ,if-else, if-else if-else, swicth-case
    • 迴圈語句:while,do-while,for

04.08_ if語句

單分支:
if(條件表示式){
	滿足條件執行的語句
}


雙分支:
if(條件表示式){
	滿足條件執行的語句
} else {
	不滿足條件執行的語句
}


多分支:
if(條件表示式1){
	滿足條件1執行的語句
} else if(條件表示式2){
	滿足條件2執行的語句
} else if(。。。。){
	滿足條件...執行的語句
} else{
	不滿足條件執行的語句
}



巢狀if:
if(條件表示式1){
	滿足條件1執行的語句
	if(條件表示式2){
		滿足條件2執行的語句
	}
}

04.09_ switch語句

  • 語法格式:
    • switch: 選擇結構
    • case: 滿足條件對應的分支
    • break: switch語句結束
    • default; 預設,如果前面的都沒有匹配上就執行這一句
switch表示式
switch(表示式或者變數){
case 常量值1:{
	語句1;
	break;
	}

case 常量值2:{
	語句2;
	break;
	}

case 常量值3:{
	語句3;
	break;
	}

...

default:{
	預設:如果前面的都沒有匹配上就執行這一句
	}
}	
  • 工作原理:可以實現多選一的操作,效果類似於if語句中的多分支
    • 根據表示式或者變數的值進行匹配,
    • 如果和case分支後面的常量值匹配上了,則執行對應的case分支,
    • 從上往下依次進行匹配,當所有的case分支都沒有匹配上的時候,則執行default分支
switch案例
//需求:有人加你好友,如果是女的,則欣然同意,如果是男的,則殘忍拒絕
var str  = "h";
switch(str){
	
	/*default:{
		document.write("不明性別,不做處理");
		break;
	}*/
	
	case "b":{
		document.write("殘忍拒絕");
		break;
	}
	
	case "g":{
		document.write("欣然同意");
		break;
	}
	default:{
		document.write("不明性別,不做處理");
	}
}

04.10_ while語句

while語句:
​	while(條件表示式){
​		迴圈體
​	}



do-while語句
​	do{
​		迴圈體
​	} while(條件表示式);


//while和do...while
var num1 = 3;
while(num1 < 1){
	document.write("hello");
}

var num2 = 3;
do{
	document.write("hello~~~~~~~");
}while(num2 < 1);

說明:初始化表示式,條件表示式,迴圈結束之後的操作表示式

04.11_ for語句

語法:
for(表示式1;表示式2;表示式3){
​	迴圈體
}
  • 說明:
    • 表示式1:初始化表示式
    • 表示式2:條件表示式
    • 表示式3:迴圈結束之後的操作表示式
    • 工作原理:表示式1—》表示式2-----》迴圈體-----》表示式3----》表示式2----》迴圈體----》表示式3.。。。。
    • 其中,表示式1只會被執行一次,表示式2和表示式3會被多次執行【跟while中的用法完全相同】

九九乘法表

//列印九九乘法表
for(var i = 1;i <= 9;i++) {
	for(var j = 1;j <= i;j++) {
		document.write(j + "x" + i + "=" + i * j + "&nbsp;");
	}
	
	document.write("<br />")
}

04.12_ break和continue

  • break:表示跳出整個迴圈或者switch語句
    • a.可以使用在分支語句switch中
    • b.使用在迴圈中
  • continue:結束當前迴圈,繼續下一次迴圈
    • a.只能用在迴圈語句中

04.13_ js中的函式

Python函式:
方式一:標準寫法
def 函式名(引數列表):
	函式體

方式二:匿名函式
add = lambda a,b:a+b
add(2,3)
js函式:
方式一:使用function關鍵字
function 函式名(引數列表){
	函式體
	返回值【可有可無】
	}

//具有返回值的函式
function add1(a,b,c){
	var sum1 = a + b + c;
	//返回值還是通過return關鍵字返回給呼叫者
	return sum1;
}

方式二:匿名函式
var 函式名【變數名】 = function(引數列表) {
	函式體
	返回值
	}
var add2 = function(a,b) {
			var sum;
			sum = a + b;
			return sum;
		}


方式三:動態函式,使用js中內建物件Function【動態函式,使用較少,作為了解】	
語法格式:var 函式名【變數名】 = new Function("引數列表",“函式體和返回值”);

var add3 = new Function("x,y","var sum;sum = x + y;return sum;");
//呼叫函式
var r1 = add3(10,20);

var prama = "x,y";
var body = "var sum;sum = x + y;return sum;";
var add4 = new Function(prama,body);
var r2 = add4(10,20);