主頁 > 前端設計 > Javascript初學者筆記篇

Javascript初學者筆記篇

2021-02-07 16:15:55 前端設計

初識JavaScript

  • JS作用
  • JS的組成
  • JS書寫位置
  • 注釋
  • 輸入輸出陳述句
  • 變數
  • 變數命名規范
  • 變數型別
    • 簡單資料型別
    • 進制
    • 獲取資料型別
    • 資料型別轉換
      • 數字轉換成字串
      • 字串轉換成數字
      • 轉換成布林值
    • 運算子
      • 算術運算子
      • 遞增和遞減運算子
      • 比較運算子
      • 邏輯運算子
      • 賦值運算子
      • 運算子的優先級
    • 流程控制
    • 陣列
      • 創建陣列
    • 冒泡排序
  • 函式
  • 物件
    • 創建物件
      • 字面量創建
      • new Object創建物件
      • 利用建構式創建物件
    • 遍歷物件
    • 內置物件

JavaScript最初命名LiveScript,它是一種腳本語言,運行在客戶端,也可以基于Node.js技術進行服務端編程,

JS作用

  • 表單驗證
  • 網頁特效
  • 服務端開發(Node.js)
  • 桌面程式(Electron)
  • App(Cordova)
  • 控制硬體-物聯網(Ruff)
  • 游戲開發 (cocos2d-js)

JS的組成

  • ECMAScript - Javascript語法
  • DOM - 頁面檔案物件模型
  • BOM - 瀏覽器物件模型

JS書寫位置

  • 行內式
<input type="button" value="行內式" onClick="alert('Hello World!')" >
  • 內嵌式
<script>
	alert('Hello World!');
</script>
  • 外部
<script src="xxx.js">這里不允許寫任何代碼</script>

注釋

  • 單行注釋
// 這是單行注釋
  • 多行注釋
/*
	這是多行注釋 
*/

輸入輸出陳述句

  • alert(msg) - 瀏覽器彈出警示框
alert('警示框');
  • console.log(msg) - 瀏覽器控制臺列印輸出資訊
// 在瀏覽器開發者工具(F12)的Console中查看
console.log('測驗使用')
  • prompt(info) - 瀏覽器彈出輸入框,用戶可以輸入
prompt('輸入框');

變數

// 宣告變數
var age;
// 給變數賦值
age = 18;
// 變數的初始化
var myname = '落葉';
// 宣告多個變數
var employeename = 'Kevin',
	phonenumber = 186,
	address = 'xxxx';
// 宣告變數的特殊情況
// 1. 只宣告不賦值,結果是undefined未定義的
var sex;
// 2. 不宣告不賦值,會報錯
console.log(tel);
// 3. 不宣告直接使用,是可以的,但是不提倡使用,
email = 'xxxx@xx.com';

變數命名規范

  • 由字母(A-Za-z)、數字(0-9)、下劃線(_)、美元符號($)組成,如:usrAge, num01, _name
  • 嚴格區分大小寫,var app;和var App;是兩個變數
  • 不能以數字開頭,18age 是錯誤的
  • 不能是關鍵字、保留字,如:var、for、while
  • 變數名必須有意義,最好是英文單詞,
  • 遵守駝峰命名法,首字母小寫,后面單詞的首字母需要大寫,如:myFirstName

變數型別

Javascript是一種弱型別或者說動態語言,變數的型別在程式運行程序中被自動確定,

var age = 18; 				   // 這是一個數字型
var myName = 'Pianpianluoye';  // 這是一個字串
var a = b = c = 9; //等同于 var a = 9; b = 9; c = 9;
var e = 9 , f = 9 , g = 9; // 等同于 var e = 9; var f = 9; var g = 9;
// JavaScript 擁有動態型別,相同變數可以作用不同型別
var x = 6;				// x 為數字
var x = 'Material';		// x 為字串

簡單資料型別

  • Number - 數字型,包含整型值和浮點型值,默認值為0
// 數字型最大值
console.log(Number.MAX_VALUE);
// 數字型最小值
console.log(Number.MIN_VALUE);
// 無窮大
alert(Infinity);
// 無窮小
alert(-Infinity);
// Nan - 代表一個非數值
alert(NaN);
// 判斷非數字,非數字為true,數字為false
console.log(isNaN(12)); // false
  • Boolean - 布爾型別,默認值false
// Boolean型別參與運算預算時 true = 1 false = 0
console.log(true + 1);   // result: 2
console.log(false + 1);  // result: 1
  • String - 字串型別,默認值""
// 字串型別必須要加引號,因為HTML中使用的是雙引號,建議JS里使用單引號
var strName = 'Pianpianluoye'; 
var strAddress = "Pianpianluoye"; 
// 如果引號嵌套,可以外雙內單或外單內雙的規則
var strProject = '這是一個"專案"描述';
var strType = "這是一個'型別'描述";

字串轉義符

  • \n - 換行
  • \\ - 斜杠
  • \’ - 單引號
  • \" - 雙引號
  • \t - 縮進
  • \b - 空格

字串拼接

// 字串拼接 +
// 只要有字串型別和其他型別的拼接,結果一定是字串拼接,數字相加,字符相連口訣,
console.log('str1' + 'str2');
console.log('我' + 18 + '歲');
// 含有變數的字串拼接
var age = 18;
console.log('我' + age + '歲');
  • Undefined - 未定義型別,默認值undefined
// 如果一個變數宣告未賦值,就是undefined未定義資料型別
var str;
console.log(str);
var variable = undefined;
console.log(variable + '未定義型別'); // result:undefined未定義型別
console.log(variable + 1); // result:NaN
  • Null - 空值,默認值為null
// Null 代表空值
var space = null;
console.log(space + '空值'); // result:null空值
console.log(space + 1); // result:1

進制

  • 八進制:數字前加0,表示八進制
// 八進制表示 0 ~ 7
var num = 010;
  • 十六進制:數字前加0x,表示十六進制
// 十六進制表示 0 ~ 9  a ~ f
var = 0x9;

獲取資料型別

// 獲取變數的資料型別
var num = 10;
console.log(typeof num);
var date = null;
console.log(typeof date); // 結果輸出型別為 object!!!

資料型別轉換

數字轉換成字串

// 數字轉換成字串 toString()
var num = 1;
alert(num.toString());
// 數字轉換成字串 String()
var num = 1;
alert(String(num));
// 加號拼接字串,也稱隱士轉換
var num = 1;
console.log(num + '');

字串轉換成數字

var age = '18';
var price = '18.88'

// parseInt(string)函式,將string型別轉換為整數數值型
console.log(parseInt(age));	  // 18
console.log(parseInt(3.14));  // 3,取整
console.log(parseInt(3.94));  // 3,取整不進位
console.log(parseInt(120px)); // 120,會去掉單位

// parseFloat(string)函式,將string型別轉為成浮點數數值型
console.log(parseFloat(price)); // 18.88

// Number()強制轉換函式,將string型別轉換為數值型
console.log(Number(age)); // 18
console.log(Number(price)); // 18.88

// js隱士轉換(-*/) 利用算術運算隱士轉換為數值型
console.log('18' - 0); // 18
console.log('15' * 1); // 15
console.log('16' / 1); // 16

轉換成布林值

// 代表空、否定的值會被轉換成false,如:''、0、NaN、null、undefined,其余值都會轉換成true,
console.log(Boolean(''));     //false
console.log(Boolean('true')); //true

運算子

算術運算子

// + 加
// - 減
// * 乘
// / 除
// % 取余
// 不要直接判斷兩個浮點數是否相等
// 因為浮點數精度,運算時會出問題

運算式和回傳值

// 任何運算式都會有一個回傳值
var num = 1 + 1;

遞增和遞減運算子

var num = 1;
// 前置遞增,先自加1后回傳值
// ++num; 等同于 num = num + 1;
console.log(++num + 15); // 17
// 后置遞增,先回傳原值后自加
// num++; 等同于 num = num + 1;
console.log(num++ + 15); // 16
// 此時num的值已從1自加成2
console.log(num); // 2

var num1 = 5;
// 前置遞減,先自減1后回傳值
// num1; 等同于 num1 = num1 - 1;
console.log(--num1 + 15); // 19
// 后置遞減,先回傳原值后自減
// num1--; 等同于 num1 = num1 - 1;
console.log(num-- + 15); // 20
// 此時num1的值已從5自減成4
console.log(num1--); // 4

var num2 = 20;
var result = num2++ + ++num2; // 42

// num++ 和 ++num 單獨使用時沒有任何區別
// num-- 和 --num 單獨使用時沒有任何區別

比較運算子

// 比較運算子中的等于是 ==
console.log(25 == '25'); // true  == 會默認轉換資料型別
// 比較運算子中的不等于是 !=
console.log(25 != '25'); // false  != 會默認轉換資料型別
// 比較運算子中的全等是===
console.log(18 === 18);   // true
console.log(18 === '18'); // false  要求值和資料型別完全一致
// 比較運算子中的不全等于是!==
console.log(18 !== 18);   // false
console.log(18 !== '18'); // true

邏輯運算子

  • && - 與
// 兩邊都為true才為true
console.log(3 > 5 && 6 > 4); // false
console.log(3 < 5 && 6 > 4); // true
  • || - 或
// 兩邊都為false才為false,否則就是true
console.log(3 > 5 || 6 > 4); // true
console.log(3 > 5 && 6 < 4); // false
  • ! - 非
console.log(!true);     // false
console.log(!(3 > 5));  // true

短路運算(邏輯中斷)

當有多個運算式(值)時,左邊的運算式值可以確定結果時,就不再繼續運算右邊的運算式的值,
// 為值的時候,除了0 '' null undefined NaN全是真
// 如果第一個運算式的值為真,則回傳運算式2
// 如果第一個運算式的值為假,則回傳運算式1
console.log(123 && 456); // 456
console.log(0 && 456);   // 0
console.log(0 && 1 + 2 && 342 * 523); // 0

// 如果第一個運算式的值為真,則回傳運算式1
// 如果第一個運算式的值為假,則回傳運算式2
console.log(123 || 456); // 123
console.log(0 || 456);   // 456
console.log(0 || 1 + 2 || 342 * 523); // 3
var num = 0;
console.log(123 || num++);
console.log(num);  // 0 , 邏輯中斷,num++不運算,

賦值運算子

var num = 10;
num = num + 1; num++;
num = num + 2; num += 2;
num = num - 2; num -= 2;
num = num * 2; num *= 2;
num = num / 2; num /= 2;
num = num % 2; num %= 2;

運算子的優先級

優先級運算子順序
1小括號()
2一元運算子++ - - !
3算術運算子先* / 后 + -
4關系運算子> >= < <=
5相等運算子== != === !==
6邏輯運算子先 與 后 或
7賦值運算子=
8逗號運算子,

流程控制

<style>#mermaid-svg-BLQD9dnN5IuHyadL .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-BLQD9dnN5IuHyadL .label text{fill:#333}#mermaid-svg-BLQD9dnN5IuHyadL .node rect,#mermaid-svg-BLQD9dnN5IuHyadL .node circle,#mermaid-svg-BLQD9dnN5IuHyadL .node ellipse,#mermaid-svg-BLQD9dnN5IuHyadL .node polygon,#mermaid-svg-BLQD9dnN5IuHyadL .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-BLQD9dnN5IuHyadL .node .label{text-align:center;fill:#333}#mermaid-svg-BLQD9dnN5IuHyadL .node.clickable{cursor:pointer}#mermaid-svg-BLQD9dnN5IuHyadL .arrowheadPath{fill:#333}#mermaid-svg-BLQD9dnN5IuHyadL .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-BLQD9dnN5IuHyadL .flowchart-link{stroke:#333;fill:none}#mermaid-svg-BLQD9dnN5IuHyadL .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-BLQD9dnN5IuHyadL .edgeLabel rect{opacity:0.9}#mermaid-svg-BLQD9dnN5IuHyadL .edgeLabel span{color:#333}#mermaid-svg-BLQD9dnN5IuHyadL .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-BLQD9dnN5IuHyadL .cluster text{fill:#333}#mermaid-svg-BLQD9dnN5IuHyadL div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-BLQD9dnN5IuHyadL .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-BLQD9dnN5IuHyadL text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-BLQD9dnN5IuHyadL .actor-line{stroke:grey}#mermaid-svg-BLQD9dnN5IuHyadL .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-BLQD9dnN5IuHyadL .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-BLQD9dnN5IuHyadL #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-BLQD9dnN5IuHyadL .sequenceNumber{fill:#fff}#mermaid-svg-BLQD9dnN5IuHyadL #sequencenumber{fill:#333}#mermaid-svg-BLQD9dnN5IuHyadL #crosshead path{fill:#333;stroke:#333}#mermaid-svg-BLQD9dnN5IuHyadL .messageText{fill:#333;stroke:#333}#mermaid-svg-BLQD9dnN5IuHyadL .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-BLQD9dnN5IuHyadL .labelText,#mermaid-svg-BLQD9dnN5IuHyadL .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-BLQD9dnN5IuHyadL .loopText,#mermaid-svg-BLQD9dnN5IuHyadL .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-BLQD9dnN5IuHyadL .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-BLQD9dnN5IuHyadL .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-BLQD9dnN5IuHyadL .noteText,#mermaid-svg-BLQD9dnN5IuHyadL .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-BLQD9dnN5IuHyadL .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-BLQD9dnN5IuHyadL .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-BLQD9dnN5IuHyadL .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-BLQD9dnN5IuHyadL .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-BLQD9dnN5IuHyadL .section{stroke:none;opacity:0.2}#mermaid-svg-BLQD9dnN5IuHyadL .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-BLQD9dnN5IuHyadL .section2{fill:#fff400}#mermaid-svg-BLQD9dnN5IuHyadL .section1,#mermaid-svg-BLQD9dnN5IuHyadL .section3{fill:#fff;opacity:0.2}#mermaid-svg-BLQD9dnN5IuHyadL .sectionTitle0{fill:#333}#mermaid-svg-BLQD9dnN5IuHyadL .sectionTitle1{fill:#333}#mermaid-svg-BLQD9dnN5IuHyadL .sectionTitle2{fill:#333}#mermaid-svg-BLQD9dnN5IuHyadL .sectionTitle3{fill:#333}#mermaid-svg-BLQD9dnN5IuHyadL .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-BLQD9dnN5IuHyadL .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-BLQD9dnN5IuHyadL .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-BLQD9dnN5IuHyadL .grid path{stroke-width:0}#mermaid-svg-BLQD9dnN5IuHyadL .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-BLQD9dnN5IuHyadL .task{stroke-width:2}#mermaid-svg-BLQD9dnN5IuHyadL .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-BLQD9dnN5IuHyadL .taskText:not([font-size]){font-size:11px}#mermaid-svg-BLQD9dnN5IuHyadL .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-BLQD9dnN5IuHyadL .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-BLQD9dnN5IuHyadL .task.clickable{cursor:pointer}#mermaid-svg-BLQD9dnN5IuHyadL .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-BLQD9dnN5IuHyadL .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-BLQD9dnN5IuHyadL .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-BLQD9dnN5IuHyadL .taskText0,#mermaid-svg-BLQD9dnN5IuHyadL .taskText1,#mermaid-svg-BLQD9dnN5IuHyadL .taskText2,#mermaid-svg-BLQD9dnN5IuHyadL .taskText3{fill:#fff}#mermaid-svg-BLQD9dnN5IuHyadL .task0,#mermaid-svg-BLQD9dnN5IuHyadL .task1,#mermaid-svg-BLQD9dnN5IuHyadL .task2,#mermaid-svg-BLQD9dnN5IuHyadL .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-BLQD9dnN5IuHyadL .taskTextOutside0,#mermaid-svg-BLQD9dnN5IuHyadL .taskTextOutside2{fill:#000}#mermaid-svg-BLQD9dnN5IuHyadL .taskTextOutside1,#mermaid-svg-BLQD9dnN5IuHyadL .taskTextOutside3{fill:#000}#mermaid-svg-BLQD9dnN5IuHyadL .active0,#mermaid-svg-BLQD9dnN5IuHyadL .active1,#mermaid-svg-BLQD9dnN5IuHyadL .active2,#mermaid-svg-BLQD9dnN5IuHyadL .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-BLQD9dnN5IuHyadL .activeText0,#mermaid-svg-BLQD9dnN5IuHyadL .activeText1,#mermaid-svg-BLQD9dnN5IuHyadL .activeText2,#mermaid-svg-BLQD9dnN5IuHyadL .activeText3{fill:#000 !important}#mermaid-svg-BLQD9dnN5IuHyadL .done0,#mermaid-svg-BLQD9dnN5IuHyadL .done1,#mermaid-svg-BLQD9dnN5IuHyadL .done2,#mermaid-svg-BLQD9dnN5IuHyadL .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-BLQD9dnN5IuHyadL .doneText0,#mermaid-svg-BLQD9dnN5IuHyadL .doneText1,#mermaid-svg-BLQD9dnN5IuHyadL .doneText2,#mermaid-svg-BLQD9dnN5IuHyadL .doneText3{fill:#000 !important}#mermaid-svg-BLQD9dnN5IuHyadL .crit0,#mermaid-svg-BLQD9dnN5IuHyadL .crit1,#mermaid-svg-BLQD9dnN5IuHyadL .crit2,#mermaid-svg-BLQD9dnN5IuHyadL .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-BLQD9dnN5IuHyadL .activeCrit0,#mermaid-svg-BLQD9dnN5IuHyadL .activeCrit1,#mermaid-svg-BLQD9dnN5IuHyadL .activeCrit2,#mermaid-svg-BLQD9dnN5IuHyadL .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-BLQD9dnN5IuHyadL .doneCrit0,#mermaid-svg-BLQD9dnN5IuHyadL .doneCrit1,#mermaid-svg-BLQD9dnN5IuHyadL .doneCrit2,#mermaid-svg-BLQD9dnN5IuHyadL .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-BLQD9dnN5IuHyadL .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-BLQD9dnN5IuHyadL .milestoneText{font-style:italic}#mermaid-svg-BLQD9dnN5IuHyadL .doneCritText0,#mermaid-svg-BLQD9dnN5IuHyadL .doneCritText1,#mermaid-svg-BLQD9dnN5IuHyadL .doneCritText2,#mermaid-svg-BLQD9dnN5IuHyadL .doneCritText3{fill:#000 !important}#mermaid-svg-BLQD9dnN5IuHyadL .activeCritText0,#mermaid-svg-BLQD9dnN5IuHyadL .activeCritText1,#mermaid-svg-BLQD9dnN5IuHyadL .activeCritText2,#mermaid-svg-BLQD9dnN5IuHyadL .activeCritText3{fill:#000 !important}#mermaid-svg-BLQD9dnN5IuHyadL .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-BLQD9dnN5IuHyadL g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-BLQD9dnN5IuHyadL g.classGroup text .title{font-weight:bolder}#mermaid-svg-BLQD9dnN5IuHyadL g.clickable{cursor:pointer}#mermaid-svg-BLQD9dnN5IuHyadL g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-BLQD9dnN5IuHyadL g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-BLQD9dnN5IuHyadL .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-BLQD9dnN5IuHyadL .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-BLQD9dnN5IuHyadL .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-BLQD9dnN5IuHyadL .dashed-line{stroke-dasharray:3}#mermaid-svg-BLQD9dnN5IuHyadL #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-BLQD9dnN5IuHyadL #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-BLQD9dnN5IuHyadL #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-BLQD9dnN5IuHyadL #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-BLQD9dnN5IuHyadL #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-BLQD9dnN5IuHyadL #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-BLQD9dnN5IuHyadL #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-BLQD9dnN5IuHyadL #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-BLQD9dnN5IuHyadL .commit-id,#mermaid-svg-BLQD9dnN5IuHyadL .commit-msg,#mermaid-svg-BLQD9dnN5IuHyadL .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-BLQD9dnN5IuHyadL .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-BLQD9dnN5IuHyadL .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-BLQD9dnN5IuHyadL g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-BLQD9dnN5IuHyadL g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-BLQD9dnN5IuHyadL g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-BLQD9dnN5IuHyadL g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-BLQD9dnN5IuHyadL g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-BLQD9dnN5IuHyadL g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-BLQD9dnN5IuHyadL .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-BLQD9dnN5IuHyadL .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-BLQD9dnN5IuHyadL .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-BLQD9dnN5IuHyadL .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-BLQD9dnN5IuHyadL .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-BLQD9dnN5IuHyadL .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-BLQD9dnN5IuHyadL .edgeLabel text{fill:#333}#mermaid-svg-BLQD9dnN5IuHyadL .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-BLQD9dnN5IuHyadL .node circle.state-start{fill:black;stroke:black}#mermaid-svg-BLQD9dnN5IuHyadL .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-BLQD9dnN5IuHyadL #statediagram-barbEnd{fill:#9370db}#mermaid-svg-BLQD9dnN5IuHyadL .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-BLQD9dnN5IuHyadL .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-BLQD9dnN5IuHyadL .statediagram-state .divider{stroke:#9370db}#mermaid-svg-BLQD9dnN5IuHyadL .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-BLQD9dnN5IuHyadL .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-BLQD9dnN5IuHyadL .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-BLQD9dnN5IuHyadL .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-BLQD9dnN5IuHyadL .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-BLQD9dnN5IuHyadL .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-BLQD9dnN5IuHyadL .note-edge{stroke-dasharray:5}#mermaid-svg-BLQD9dnN5IuHyadL .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-BLQD9dnN5IuHyadL .error-icon{fill:#522}#mermaid-svg-BLQD9dnN5IuHyadL .error-text{fill:#522;stroke:#522}#mermaid-svg-BLQD9dnN5IuHyadL .edge-thickness-normal{stroke-width:2px}#mermaid-svg-BLQD9dnN5IuHyadL .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-BLQD9dnN5IuHyadL .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-BLQD9dnN5IuHyadL .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-BLQD9dnN5IuHyadL .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-BLQD9dnN5IuHyadL .marker{fill:#333}#mermaid-svg-BLQD9dnN5IuHyadL .marker.cross{stroke:#333} :root { --mermaid-font-family: "trebuchet ms", verdana, arial;}</style> <style>#mermaid-svg-BLQD9dnN5IuHyadL { color: rgba(0, 0, 0, 0.75); font: ; }</style> 流程控制 順序結構 分支結構 回圈結構

IF語法結構

if (條件運算式) {
	// 執行陳述句1;
};
if (條件運算式) {
	// 執行陳述句1;
} else {
	// 執行陳述句2;
};
if (條件運算式1) {
	// 執行陳述句1;
} else if (條件運算式2) {
	// 執行陳述句2;
} else {
	// 執行陳述句3;
};

三元運算式

// 如果運算式條件為真,則回傳運算式1的值,如果運算式條件為假,則回傳運算式2的值
var num = 10;
var result = num > 5 ? 'Yes' : 'No';

SWITCH 陳述句

// 運算式條件值 和case后面的值是全等條件
switch (運算式) {
    case value1:
        執行陳述句1;
        break;
    case value2:
        執行陳述句2;
        break;
    ...
    default:
        執行最后的陳述句;
};

回圈

for 回圈
for (初始化變數; 條件運算式; 操作運算式) {
	// 回圈體
};
for (var i = 1; i<=100; i++) {
	console.log('Hello World!');
};
//------------------------------------------
var sum = 0
for (var i = 1; i <= 100; i++) {
    sum += i;
};
console.log(sum)
while 回圈
// 當條件運算式為真時執行回圈體
while (條件運算式) {
	// 回圈體代碼
}
do while 回圈
// 先執行一次回圈體,在判斷條件
do {
	// 回圈體代碼
} while (條件運算式)

Continue

用于立即跳出本回圈,繼續下一回圈,

Break

用于立即跳出整個回圈,

陣列

一組資料的集合,

創建陣列

// new 關鍵字創建陣列
var arr  = new Array(2); // 2代表陣列的長度
var arr1 = new Array();

// 利用陣列字面量創建陣列
var arr2 = [];
var arr3 = [1,2,3,4,5,true,'P'];  // 元素用逗號分開,元素的型別可以是任意型別,

陣列的索引

用來訪問陣列元素的序號(陣列下標從0開始)
// 訪問陣列元素
var arr3 = [1,2,3,4,5,true,'P'];
console.log(arr3[3]);

// 遍歷陣列
// arr3.length 陣列的長度是元素的個數
for (i = 0; i < arr3.length; i++) {
	console.log(arr[i]);
}

新增陣列元素

可以通過修改length長度
var arr = [1,2,3,4,5,true,'P'];
arr.length = 10;
可以通過修改索引號
var arr = [1,2,3,4,5,true,'P'];
arr[8] = 'R';
arr[13] = 'U';

冒泡排序

冒泡排序是一種簡單的排序演算法,它重復的走過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把它們交換過來,走訪數列的作業是重復的進行直到沒有再需要交換,也就是說該數列已經排序完成,這個演算法的名字由來是因為越小的元素會經由交換慢慢"浮"到數列的頂端,

 var arr = [4, 3, 5, 1, 7];

 for (var i = 0; i <= arr.length - 1; i++) { // 外回圈,用來確定比較幾輪 
 
 // arr.length - i 內回圈都走完之后會確定一個最大值,
 // 所以下一輪的內回圈不需要arr.length - 1的次數,
 // 只需要arr.length - 1再減去外回圈的次數i即可,不需要做無用的比較,
 
     for (var j = 0; j <= arr.length - i - 1; j++) { // 內回圈,用來做每輪的交換次數
         if (arr[j] > arr[j + 1]) {
             var tmp = arr[j];
             arr[j] = arr[j + 1];
             arr[j + 1] = tmp;
         }
     }
 }
 console.log(arr);

函式

  1. 宣告函式
function 函式名() {
	// 函式體
}
  1. 呼叫函式
function sayHello() {
	console.log('Hello World!');
	sayHello();
}
  1. 函式的引數
// 1. 形參
function 函式名(形參1, 形參2, 形參3) {
	// 函式體
}
// 2. 實參
函式名(實參1, 實參2, 實參3);
// 形參無實參傳遞值時,為undefined型別,

// 3. 函式的回傳值
function 函式名() {
	// return 需要回傳的結果;
}

function getAge (age) {
	return age;
}
console.log(getAge(18));
// return 后面的代碼不會執行,并且只能回傳一個值(最后一個值)
// 回傳多個值可以放到陣列里實作 return [1,2,3,4];
// 沒有寫return的話函式就回傳undefined

arguments
函式的一個內置物件,所有函式都有,arguments物件存盤了傳遞的所有實參,
arguments是一個偽陣列(具有陣列的length屬性、按照索引的方式進行存盤、它沒有真正陣列的一些方法)

function arg(){
	console.log(arguments);
}
arg(1,2,3);

函式運算式宣告函式,由于函式沒有名字也叫匿名函式,

var 變數名 = function (){
	console.log('函式運算式');
};
// 呼叫
變數名();

函式的形參可以看成是區域變數
如果函式內部沒有宣告直接賦值的變數也屬于全域變數
在JS中,es6中才增加的塊級作用域,es6之前是沒有塊級作用域的,
塊級作用域 {} , if {} 、 for {} 作用域鏈,內部函式可以訪問外部函式的變數,

預決議

JS引擎運行js分兩步:預決議、代碼運行
JS引擎會把js里面所有的var還有function提升到當前作用域的最前面

變數預決議

又叫變數提升,就是把所有的變數宣告提升到當前作用域的最前面,不提升賦值操作,

函式預決議

又叫函式提升,就是把所有的函式宣告提升到當前作用域的最前面,不呼叫函式,

物件

創建物件

字面量創建

// var obj = {};
var obj = {
	uname: '',
	age: 20,
	sex: '男'
	sayHello: function () {
		console.log('Hello World!');
	}
};

// 呼叫物件方法
console.log(obj.uname); 
console.log(obj['sex']);
obj.sayHello();

new Object創建物件

var obj = new Object();
obj.uname = 'Pianpianluoye';
obj.age = 20;
obj.sex = '男';
obj.sayHello = function() {
	console.log('Hello World!');
}

利用建構式創建物件

建構式,是一種特殊的函式,主要用來初始化物件,即為物件成員變數賦初始值,它總與new運算子一起使用,

// 建構式名,首字母大寫,因為new會回傳這個新物件,所以建構式里不需要return,
function Employees(uname, age, sex) {
	this.name = uname;
	this.age = age;
	this.sex = sex;
	this.sayHello = function(say) {
		console.log(say);
	}
}
var pply = new Employees('Pianpianluoye', 25, '男');
console.log(pply.name);
console.log(pply['age']);
pply.sayHello('Hello World!');

遍歷物件

for (var k in obj) {
	console.log(k); // 輸出的是屬性名
	console.log(obj[k]); // 輸出的是屬性值
}

內置物件

物件分為:自定義物件、內置物件、瀏覽器物件
MDN Web檔案

轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/257535.html

標籤:其他

上一篇:聊聊運營商對UDP的QoS限制和應對

下一篇:Failure of server APACHE bridge 頁面內容是在哪里修改得?

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • vue移動端上拉加載

    可能做得過于簡單或者比較low,請各位大佬留情,一起探討技術 ......

    uj5u.com 2020-09-10 04:38:07 more
  • 優美網站首頁,頂部多層導航

    一個個人用的瀏覽器首頁,可以把一下常用的網站放在這里,平常打開會比較方便。 第一步,HTML代碼 <script src=https://www.cnblogs.com/szharf/p/"js/jquery-3.4.1.min.js"></script> <div id="navigate"> <ul> <li class="labels labels_1"> ......

    uj5u.com 2020-09-10 04:38:47 more
  • 頁面為要加<!DOCTYPE html>

    最近因為寫一個js函式,需要用到$(window).height(); 由于手寫demo的時候,過于自信,其實對前端方面的認識也不夠體系,用文本檔案直接敲出來的html代碼,第一行沒有加上<!DOCTYPE html> 導致了$(window).height();的結果直接是整個document的高 ......

    uj5u.com 2020-09-10 04:38:52 more
  • WordPress網站程式手動升級要做好資料備份

    WordPress博客網站程式在進行升級前,必須要做好網站資料的備份,這個問題良家佐言是遇見過的;在剛開始接觸WordPress博客程式的時候,因為升級問題和博客網站的修改的一些嘗試,良家佐言是吃盡了苦頭。因為購買的是西部數碼的空間和域名,每當佐言把自己的WordPress博客網站搞到一塌糊涂的時候 ......

    uj5u.com 2020-09-10 04:39:30 more
  • WordPress程式不能升級為5.4.2版本的原因

    WordPress是一款個人博客系統,受到英文博客愛好者和中文博客愛好者的追捧,并逐步演化成一款內容管理系統軟體;它是使用PHP語言和MySQL資料庫開發的,用戶可以在支持PHP和MySQL資料庫的服務器上使用自己的博客。每一次WordPress程式的更新,就會牽動無數WordPress愛好者的心, ......

    uj5u.com 2020-09-10 04:39:49 more
  • 使用CSS3的偽元素進行首字母下沉和首行改變樣式

    網頁中常見的一種效果,首字改變樣式或者首行改變樣式,效果如下圖。 代碼: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, ......

    uj5u.com 2020-09-10 04:40:09 more
  • 關于a標簽的講解

    什么是a標簽? <a> 標簽定義超鏈接,用于從一個頁面鏈接到另一個頁面。 <a> 元素最重要的屬性是 href 屬性,它指定鏈接的目標。 a標簽的語法格式:<a href=https://www.cnblogs.com/summerxbc/p/"指定要跳轉的目標界面的鏈接">需要展示給用戶看見的內容</a> a標簽 在所有瀏覽器中,鏈接的默認外觀如下: 未被訪問的鏈接帶 ......

    uj5u.com 2020-09-10 04:40:11 more
  • 前端輪播圖

    在需要輪播的頁面是引入swiper.min.js和swiper.min.css swiper.min.js地址: 鏈接:https://pan.baidu.com/s/15Uh516YHa4CV3X-RyjEIWw 提取碼:4aks swiper.min.css地址 鏈接:https://pan.b ......

    uj5u.com 2020-09-10 04:40:13 more
  • 如何設定html中的背景圖片(全屏顯示,且不拉伸)

    1 <style>2 body{background-image:url(https://uploadbeta.com/api/pictures/random/?key=BingEverydayWallpaperPicture); 3 background-size:cover;background ......

    uj5u.com 2020-09-10 04:40:16 more
  • Java學習——HTML詳解(上)

    HTML詳解 初識HTML Hyper Text Markup Language(超文本標記語言) 1 <!--DOCTYPE:告訴瀏覽器我們要使用什么規范--> 2 <!DOCTYPE html> 3 <html lang="en"> 4 <head> 5 <!--meta 描述性的標簽,描述一些 ......

    uj5u.com 2020-09-10 04:40:33 more
最新发布
  • 我的第一個NPM包:panghu-planebattle-esm(胖虎飛機大戰)使用說明

    好家伙,我的包終于開發完啦 歡迎使用胖虎的飛機大戰包!! 為你的主頁添加色彩 這是一個有趣的網頁小游戲包,使用canvas和js開發 使用ES6模塊化開發 效果圖如下: (覺得圖片太sb的可以自己改) 代碼已開源!! Git: https://gitee.com/tang-and-han-dynas ......

    uj5u.com 2023-04-20 07:59:23 more
  • 生產事故-走近科學之消失的JWT

    入職多年,面對生產環境,盡管都是小心翼翼,慎之又慎,還是難免捅出簍子。輕則滿頭大汗,面紅耳赤。重則系統停擺,損失資金。每一個生產事故的背后,都是寶貴的經驗和教訓,都是專案成員的血淚史。為了更好地防范和遏制今后的各類事故,特開此專題,長期更新和記錄大大小小的各類事故。有些是親身經歷,有些是經人耳傳口授 ......

    uj5u.com 2023-04-18 07:55:04 more
  • 記錄--Canvas實作打飛字游戲

    這里給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 打開游戲界面,看到一個畫面簡潔、卻又富有挑戰性的游戲。螢屏上,有一個白色的矩形框,里面不斷下落著各種單詞,而我需要迅速地輸入這些單詞。如果我輸入的單詞與螢屏上的單詞匹配,那么我就可以獲得得分;如果我輸入的單詞錯誤或者時間過長,那么我就會輸 ......

    uj5u.com 2023-04-04 08:35:30 more
  • 了解 HTTP 看這一篇就夠

    在學習網路之前,了解它的歷史能夠幫助我們明白為何它會發展為如今這個樣子,引發探究網路的興趣。下面的這張圖片就展示了“互聯網”誕生至今的發展歷程。 ......

    uj5u.com 2023-03-16 11:00:15 more
  • 藍牙-低功耗中心設備

    //11.開啟藍牙配接器 openBluetoothAdapter //21.開始搜索藍牙設備 startBluetoothDevicesDiscovery //31.開啟監聽搜索藍牙設備 onBluetoothDeviceFound //30.停止監聽搜索藍牙設備 offBluetoothDevi ......

    uj5u.com 2023-03-15 09:06:45 more
  • canvas畫板(滑鼠和觸摸)

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>canves</title> <style> #canvas { cursor:url(../images/pen.png),crosshair; } #canvasdiv{ bo ......

    uj5u.com 2023-02-15 08:56:31 more
  • 手機端H5 實作自定義拍照界面

    手機端 H5 實作自定義拍照界面也可以使用 MediaDevices API 和 <video> 標簽來實作,和在桌面端做法基本一致。 首先,使用 MediaDevices.getUserMedia() 方法獲取攝像頭媒體流,并將其傳遞給 <video> 標簽進行渲染。 接著,使用 HTML 的 < ......

    uj5u.com 2023-01-12 07:58:22 more
  • 記錄--短視頻滑動播放在 H5 下的實作

    這里給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 短視頻已經無數不在了,但是主體還是使用 app 來承載的。本文講述 H5 如何實作 app 的視頻滑動體驗。 無聲勝有聲,一圖頂百辯,且看下圖: 網址鏈接(需在微信或者手Q中瀏覽) 從上圖可以看到,我們主要實作的功能也是本文要講解的有: ......

    uj5u.com 2023-01-04 07:29:05 more
  • 一文讀懂 HTTP/1 HTTP/2 HTTP/3

    從 1989 年萬維網(www)誕生,HTTP(HyperText Transfer Protocol)經歷了眾多版本迭代,WebSocket 也在期間萌芽。1991 年 HTTP0.9 被發明。1996 年出現了 HTTP1.0。2015 年 HTTP2 正式發布。2020 年 HTTP3 或能正... ......

    uj5u.com 2022-12-24 06:56:02 more
  • 【HTML基礎篇002】HTML之form表單超詳解

    ??一、form表單是什么

    ??二、form表單的屬性

    ??三、input中的各種Type屬性值

    ??四、標簽 ......

    uj5u.com 2022-12-18 07:17:06 more