亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

搜索
博主信息
博文 16
粉絲 0
評論 0
訪問量 17309
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
JavaScript快速入門
大碗寬面
原創(chuàng)
975人瀏覽過

變量(Variable)

變量是存儲值的容器。要聲明一個變量,先輸入關鍵字 let 或 var,然后輸入合適的名稱
由于var聲明的變量 再次聲明依然可以賦予新的值,存在bug 所以不常用
下面使用let:
let name ;,let sex ;,let age ;

標識符必須以字母、下劃線(_)或者美元符號($)開頭;后續(xù)的字符也可以是數(shù)字(0-9)。因為 JavaScript 語言是區(qū)分大小寫的,所以字母可以是從“A”到“Z”的大寫字母和從“a”到“z”的小寫字母。

合法的標識符示例:Number_hits,temp99,$credit 和 _name。

常量(Constants)

const 創(chuàng)建一個只讀的常量。常量標識符的命名規(guī)則和變量相同.常量命名通常用全大寫的方式 如:
const PI = 3.14;,const MY_NAME = ['張三'];
常量不可以通過重新賦值改變其值,也不可以在代碼運行時重新聲明。它必須被初始化為某個值。

常量的作用域規(guī)則與 let 塊級作用域變量相同。若省略const關鍵字,則該標識符將被視為變量。

全局變量

1.全局變量是全局對象的屬性,聲明在函數(shù)外部,可以全局使用

局部變量

2.局部變量是局部方法/函數(shù)的屬性,聲明在函數(shù)內部,只可以內部使用

變量,常量的區(qū)別

圖中常量不賦值 會顯示錯誤:Uncaught SyntaxError: missing = in const declaration. : const聲明中缺少=

圖中常量重新賦值 會顯示錯誤 TypeError: invalid assignment to const。 :對const賦值無效

(1)常量表示一些固定不變的數(shù)據(jù),必須要有初始值,且值在程序的運行中不可以發(fā)生改變




變量定義后可以進行賦值:
yourName = '李四';
也可以將定義、賦值操作寫在同一行:
let yourName = '李四';
變量在賦值后是可以更改的:

  1. let yourName = '李四';
  2. console.log(yourName);
  3. yourName = '趙五';
  4. console.log(yourName);

可以直接通過變量名取得變量的值:
yourName;

(2)變量表示一些可以變化的數(shù)據(jù),可以無初始值,且值在程序的運行中可以發(fā)生變化或者再次賦值

常用數(shù)據(jù)類型(Data Type)

數(shù)據(jù)類型 說明
布爾值(Boolean) 有2個值分別是:true 和 false
null 一個表明 null 值的特殊關鍵字。 JavaScript 是大小寫敏感的,因此 null 與 Null、NULL或變體完全不同
undefined 和 null 一樣是一個特殊的關鍵字,undefined 表示變量未賦值時的屬性
數(shù)字(Number) 整數(shù)或浮點數(shù),例如: 42 或者 3.14159
字符串(String) 字符串是一串表示文本值的字符序列,例如:”Howdy”
代表(Symbol) ( 在 ECMAScript 6 中新添加的類型).。一種實例是唯一且不可改變的數(shù)據(jù)類型。

運算符 通常運算符 ( = + - * / ) 前后需要添加空格:

運算符 說明
+ 將兩個數(shù)字相加,或拼接兩個字符串。
-, *, / 這些運算符操作與基礎算術一致。只是乘法寫作星號,除法寫作斜杠。
= 為變量賦值
=== 測試兩個值是否相等,并返回一個 true/false (布爾)值。
!== 和等于運算符相反,測試兩個值是否不相等,并返回一個 true/false (布爾)值。
! 返回邏輯相反的值,比如當前值為真,則返回 false。原式為真,但經(jīng)取非后值為 false

函數(shù)的種類與參數(shù)類型

自定義函數(shù)

語法:函數(shù) 方法名(參數(shù)){}
function way() {}

調用函數(shù)

語法:方法名(參數(shù));
way(2, 3);

匿名函數(shù)

語法:函數(shù)(){} 方法名不寫
如果此函數(shù)為一次性的 聲明后立即使用:

  1. function(a, b) {
  2. console.log(a + b);
  3. })(5,6);

如果這個匿名函數(shù)不是一次性的,應該使用函數(shù)表達式

  1. let add = function (a, b) {
  2. console.log(a + b);
  3. };
  4. add(5, 5);

更多場景下,我們大多使用箭頭函數(shù)來簡化 胖箭頭=> 瘦箭頭-=

胖箭頭:

  1. add = (a, b) => a + b; //等同于let add = function (a, b)
  2. // 如果函數(shù)的代碼只有一行。大括號可以不寫
  3. console.log(add(11, 9));
  4. // 如果參數(shù)只有一個,參數(shù)的括號可以不寫
  5. add = (a) => a + 5;
  6. console.log(add(99));
  7. // 如果沒有參數(shù)時,括號必須寫
  8. add = () => 10 + 3;
  9. console.log(add());
  10. // 箭頭函數(shù)
  11. // 如果執(zhí)行語句只有一條 可以不寫大括號:{}
  12. // 如果參數(shù)只有一個,可以不寫超參數(shù)外面的括號
  13. // 如果沒有參數(shù),括號必須寫

函數(shù)參數(shù)

函數(shù)的參數(shù)分為形參和實參
(1)形參:在聲明一個函數(shù)的時候,為了函數(shù)的功能更加靈活,有些值是固定不了的,對于這些固定不了的值。我們可以給函數(shù)設置參數(shù)。這個參數(shù)沒有具體的值,僅僅起到一個占位置的作用,我們通常稱之為形式參數(shù),也叫形參。
(2)實參:如果函數(shù)在聲明時,設置了形參,那么在函數(shù)調用的時候就需要傳入對應的參數(shù),我們把傳入的參數(shù)叫做實際參數(shù),也叫實參。

  1. function 函數(shù)名(形參1,形參2...){
  2. 函數(shù)體
  3. }

  1. function 函數(shù)名(實參1,實參2....){
  2. 形參1=實參1;
  3. 形參2=實參2;
  4. 形參3=實參3;
  5. }

作用域與閉包的關系與實現(xiàn)

作用域就是一個獨立的環(huán)境,讓變量不會外泄、暴露出去。作用域最大的用處就是隔離變量,不同作用域下同名變量不會有沖突。

1.作用域

函數(shù)可以訪問內部的變量

  1. function way() {
  2. let a = 4;
  3. return a * a;
  4. }
  5. console.log(way());

也可以訪問函數(shù)外部定義的變量:

  1. let b = 4;
  2. function way() {
  3. let a = 4;
  4. return b * 4;
  5. }
  6. console.log(way());
2.作用域鏈

1.自由變量
如下代碼中,console.log(a)要得到 a 變量,但是在當前的作用域中沒有定義 a(可對比一下 b)。當前作用域沒有定義的變量,這成為 自由變量 。自由變量的值向父級作用域尋找

  1. <script>
  2. let a = 100;
  3. function fn() {
  4. let b = 200;
  5. console.log(a); // 這里的a在這里就是一個自由變量
  6. console.log(b);
  7. }
  8. fn();
  9. </script>

2.作用域鏈
如果父級也沒有,就一層一層向上尋找,直到找到全局作用域還是沒找到,就宣布放棄。這種一層一層的關系,就是 作用域鏈 。

  1. <script>
  2. let a = 100;
  3. function F1() {
  4. let b = 200;
  5. function F2() {
  6. let c = 300;
  7. console.log(a); // 自由變量,順作用域鏈向父作用域找
  8. console.log(b); // 自由變量,順作用域鏈向父作用域找
  9. console.log(c); // 本作用域的變量
  10. }
  11. F2();
  12. }
  13. F1();
  14. </script>
3.閉包

閉包的實現(xiàn)原理和作用
1、閉包的概念:指有權訪問另一個函數(shù)作用域中的變量的函數(shù),一般情況就是在一個函數(shù)中包含另一個函數(shù)。

2、閉包的作用:訪問函數(shù)內部變量、保持函數(shù)在環(huán)境中一直存在,不會被垃圾回收機制處理

  1. <script>
  2. function b() {
  3. //外層函數(shù)聲明的變量
  4. let num = 1;
  5. function f() {
  6. console.log(num);
  7. }
  8. return f();
  9. }
  10. // 實際上b()函數(shù)并沒有因為執(zhí)行完就被垃圾回收機制處理掉
  11. // 這就是閉包的作業(yè)。調用b()函數(shù),就會執(zhí)行里面的f函數(shù)
  12. // f函數(shù)這時就會訪問到外層的變量
  13. let ba = b;
  14. ba();
  15. </script>

因此我們可以在函數(shù)內部再創(chuàng)建一個函數(shù),這樣對內部的函數(shù)來說,外層函數(shù)的變量都是可見的,然后我們就可以訪問到他的變量了。
3、閉包的優(yōu)點:
方便調用上下文中聲明的局部變量邏輯緊密,可以在一個函數(shù)中再創(chuàng)建個函數(shù),避免了傳參的問題
4、閉包的缺點:
因為使用閉包,可以使函數(shù)在執(zhí)行完后不被銷毀,保留在內存中,如果大量使用閉包就會造成內存泄露,內存消耗很大

模板字符串與標簽函數(shù)

基本用法

  1. let string = `Hello'\n'world`;
  2. console.log(string);
  3. // "Hello'
  4. // 'world"

普通字符串

  1. `aaaaa`
  2. //返回字符串"aaaaa"

引號使用,返回字符串

  1. let a=123;
  2. `aaa${a}aaa`
  3. //返回字符串"aaa123aaa"

帶標簽的模板字符串,可以自定義函數(shù)處理模板字符串

標簽函數(shù)

  1. function Tag(strings, personExp,ageExp,...)
  2. //strings:字符串數(shù)組,這個其實就是以${}分分隔符分割得到的數(shù)組
  3. //personExp:模板字符串中第一個${}的值
  4. //ageExp:模板字符串中第二個${}的值
  5. //...:模板字符串中第n個${}的值
  1. let browserType = 'mozilla';
  2. browserType.length;

(1)獲得字符串的長度

  1. let radData = 'My NaMe Is MuD';
  2. radData.toLowerCase();
  3. radData.toUpperCase();

(2)轉換大小寫

批改老師:PHPzPHPz

批改狀態(tài):合格

老師批語:
本博文版權歸博主所有,轉載請注明地址!如有侵權、違法,請聯(lián)系admin@php.cn舉報處理!
全部評論 文明上網(wǎng)理性發(fā)言,請遵守新聞評論服務協(xié)議
0條評論
作者最新博文
關于我們 免責申明 意見反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線php培訓,幫助PHP學習者快速成長!
關注服務號 技術交流群
PHP中文網(wǎng)訂閱號
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時隨地碎片化學習
PHP中文網(wǎng)抖音號
發(fā)現(xiàn)有趣的

Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號

  • 登錄PHP中文網(wǎng),和優(yōu)秀的人一起學習!
    全站2000+教程免費學