国产黄色免费网站_久久天天做天天爱综合色_精品国产一区久久久_成人黄色激情网站_久久成人在线视频_美女一区二区在线观看_亚洲精品免费一区亚洲精品免费精品一区 _91精品国产综合久久精品麻豆

【舉栗說明】JavaScript作用域,一次性給你總結!

2021-10-18    前端達人

圖片

本文重點

  • 函數案例

  • 函數作為參數使用

  • arguments

  • 作用域:寫代碼要注意變量的在哪聲明和使用的問題

  • 預解析:什么叫預解析, 什么東西發生了什么事

01 作用域:使用范圍

全局變量:

  • 聲明的變量是使用var聲明的,那么這個變量就是全局變量,

  • 全局變量可以在頁面的任何位置使用

  • 除了函數以外,其他的任何位置定義的變量都是全局變量

  • 如果頁面不關閉,那么就不會釋放,就會占空間,消耗內存

  • 全局作用域:全局變量的使用范圍

局部變量:

  • 在函數內部定義的變量,是局部變量,外面不能使用

  • 局部作用域:局部變量的使用范圍

注意:

塊級作用域:一對大括號就可以看成是一塊,在這塊區域中定義的變量,只能在這個區域中使用,但是在js中在這個塊級作用域中定義的變量,外面也能使用;

說明:js沒有塊級作用域,只有函數除外

隱式全局變量:聲明的變量沒有var,就叫隱式全局變量

全局變量是不能被刪除的,隱式全局變量是可以被刪除的

定義變量使用var是不會被刪除的,沒有var是可以刪除的

function f1() {  number=1000;//是隱式全局變量 }f1();console.log(number);   var num1=10;  num2=20;  delete num1;//把num1刪除了  delete num2;//把num2刪除了  console.log(typeof num1);  console.log(num1+10);  console.log(typeof num2);  num=100; console.log(num);  function f1() {  var num=100;  num+=10; }f1();//這個函數結束之后 { var num=10;  console.log(num);//10 }console.log(num);  if(true){  var num=10; }console.log(num); for(var i=0;i<5;i++){  var number=20; }console.log(number);   var i=0;  while (i<5){  var num=100;  i++;  } console.log(num);  function f1() {  var num=10; }f1(); console.log(num);  var num=10; console.log(num);//10  

作用域鏈

 var num=10;  function f1() {  var num=20;  function f2() {  var num=30;  function f3() {  var num=50;  console.log(num);  } f3();  } f2();  } f1(); 

03 函數案例

求2個數中的最大值

 function getMax(num1, num2) {  return num1 > num2 ? num1 : num2;  } console.log(getMax(10,20));  //console.log(getMax);//函數的代碼 function getMax(num1, num2) {  return num1 > num2 ? num1 : num2;  } var num1=10;  var num2=20;  //函數外面的num1和函數的形參num1不是同一個變量 var result=getMax(num1,num2);  console.log(result);  console.log(getMax);//函數的代碼 

求3個數中的最大值

 function getThreeMax(x, y, z) {  return x > y ? (x > z ? x : z) : (y > z ? y : z);  } console.log(getThreeMax(10,2,24)); 

判斷一個數是否是素數(質數),只能被1和自身整除,質數是從2開始

用這個數字和這個數字前面的所有的數字整除一次(沒有1的,沒有自身的)

 function isPrimeNumber(num) {  for (var i = 2; i < num; i++) {  if (num % i == 0) {  //說明有一個數字整除了,就沒有必要向后繼續整除了, //此時就已經驗證出不是質數 return false;  } } return true;  }//  console.log(isPrimeNumber(7) ? "yyyyyes" : "nnnnnno") var aa = isPrimeNumber(17);  if (aa) {  console.log("yes");  } else {  console.log("no");  }  function isPrimeNumber(num) {  for(var i=2;i<num;i++){  if(num%i==0){  //說明有一個數字整除了,就沒有必要向后繼續整除了,此時就已經驗證出不是質數 return false;  } } return true;  } console.log(isPrimeNumber(8)?"是質數":"不是質數");   var result=isPrimeNumber(2);  if(result){  console.log("這個數字是質數");  }else{  console.log("這個數字不是質數");  }  function aaa(x,y){  return x-y;  } console.log(aaa(99,88)) 

通過函數實現數組反轉

 function reverseArray(arr) {  for (var i = 0; i < arr.length / 2; i++) {  var temp = arr[i];  arr[i] = arr[arr.length - 1 - i];  arr[arr.length - 1 - i] = temp;  } return arr;  } console.log(reverseArray([1, 2, 3, 4, 5])); 

通過函數實現冒泡排序

 function sortArray(arr) {  //控制比較的輪數 for (var i = 0; i < arr.length - 1; i++) {  //控制每一輪的比較次數 for (var j = 0; j < arr.length - 1 - i; j++) {  if (arr[j] > arr[j + 1]) {  var temp = arr[j];  arr[j] = arr[j + 1];  arr[j + 1] = temp;  }//end if }//end for }//end for return arr; } console.log(sortArray([0, 19, 34, 10, 100, 2])); 

求一個數字的階乘

function getJieCheng(num) {  var result = 1;  for (var i = 1; i <= num; i++) {  result *= i;  } return result; }console.log(getJieCheng(5));//1*2*3*4*5 

求斐波那契數列

 function getFib(num){  var num1=1;  var num2=1;  var num3=0;  for(var i=3;i<=nnum;i++){  sum=num1+num2;  num1=num2;  num2=sum;  } return sum;  } console.log(getFib(12))  

02 函數作為參數使用

函數是有數據類型,數據類型:是function類型的

函數可以作為參數使用,如果一個函數作為參數,那么我們說這個參數(函數)可以叫回調函數 只要是看到一個函數作為參數使用了,那就是回調函數

function sayHi(fn) {   console.log("GOOD");  fn();//fn此時應該是一個函數}function suSay() {  console.log("HELLO"); }sayHi(suSay); function f1(x,y) {  console.log(x+y); }f1(10,20); function f2(x,y) {  console.log(x+y); }f2("HLS","MISS"); function f3(x) {  console.log(x); }f3(true);

04 arguments

計算n個數字的和

定義一個函數,如果不確定用戶是否傳入了參數,或者說不知道用戶傳了幾個參數,沒辦法計算,但是如果在函數中知道了參數的個數,等于也知道了每個參數的值.

//定義function f1() {  //獲取的是函數在調用的時候,傳入了幾個參數 //console.log(arguments.length);  //使用arguments對象可以獲取傳入的每個參數的值 console.log(arguments); } f1(10,20,30,40,100,200);//調用 
 function f1({  //arguments----->數組使用------偽數組--- var sum=0;  for(var i=0;i<arguments.length;i++){  sum+=arguments[i];  } return sum;  } console.log(f1(10,20,30)); 

05 預解析:提前解析代碼

預解析:就是在解析代碼之前,預解析做什么事?

把變量的聲明提前了----提前到當前所在的作用域的最上面

函數的聲明也會被提前—提前到當前所在的作用域的最上面

函數調用的時候, 把會函數的聲明提升到作用域的上面

函數的聲明提升到作用域

 f1();//調用  var num=20;//這個變量的聲明會提升到變量使用之前  function f1() {  console.log(num);  //var num=10;  } function f1() {  console.log("小蘇好猥瑣");  } f1();  function f1() {  console.log("小蘇沒有助教猥瑣");  } f1(); 

把變量的聲明提前

 var num;  console.log(num);  num=10;  function f1() {  console.log("哈哈,助教好猥瑣哦");  }   //f1();//報錯 

注意:預解析中,變量的提升,只會在當前的作用域中提升,提前到當前的作用域的最上面

  function f1({  console.log(num);//undefined  var num = 10;  } f1();   console.log(num);//報錯  

函數中的變量只會提前到函數的作用域中的最前面,不會出去

預解析會分段(多對的script標簽中函數重名,預解析的時候不會沖突)

 function f1({  console.log(num);//undefined  var num=10; } f1(); console.log(num);// function f1() { console.log("哈哈"); }

藍藍設計建立了UI設計分享群,每天會分享國內外的一些優秀設計,如果有興趣的話,可以進入一起成長學習,請掃碼藍小助,報下信息,藍小助會請您入群。歡迎您加入噢~~希望得到建議咨詢、商務合作,也請與我們聯系。

分享此文一切功德,皆悉回向給文章原作者及眾讀者.

轉自:csdn
免責聲明:藍藍設計尊重原作者,文章的版權歸原作者。如涉及版權問題,請及時與我們取得聯系,我們立即更正或刪除。

藍藍設計www.newchinaweekly.com )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 平面設計服務

日歷

鏈接

個人資料

藍藍設計的小編 http://www.newchinaweekly.com

存檔

手机av在线看| 国产亚洲人成网站| 91丝袜高跟美女视频| 中文字幕一区在线| 黄动漫网站在线观看| 日韩写真在线| 色www永久免费视频首页在线| 电影网一区二区| 57pao国产一区二区| 欧美99在线视频观看| 国产最新精品免费| 亚洲精品国产一区二区三区四区在线| 亚洲精品日韩专区silk | 午夜免费在线观看精品视频| 国产精品网站大全| 特级毛片在线免费观看| 97久草视频| 欧美少妇一区二区三区| 日本女优爱爱视频| 九九热久久免费视频| 国产免费一区二区三区最新不卡| 多人欧美交性姿势| 你懂得在线网址| 九九久久国产| 欧美色123| 久久久高清一区二区三区| 成人av网站免费| 粉嫩老牛aⅴ一区二区三区| 国产精品视频第一区| 不卡av免费在线观看| 欧美日韩国产综合视频在线观看中文| 亚洲男人的天堂在线| 亚洲伊人成综合成人网| 91精品中文在线| 欧美一级免费播放| 2019男人天堂| 天堂在线观看视频| 在线一二三区| 深夜福利一区| 亚洲在线观看| 亚洲v精品v日韩v欧美v专区| www.日本久久久久com.| 蜜桃成人在线| 亚洲国产综合视频| 国产99对白在线播放| 国产福利电影在线观看| 亚洲日本在线观看视频| 国产日韩欧美一区在线| 一个色综合av| 久久久久久久影院| av影院在线播放| 无码人妻精品一区二区三区夜夜嗨| 日本1区2区3区视频| xxxxx欧美| 蜜臀av国内免费精品久久久夜夜| 99久久影视| 国产精品久久久久久久久久久免费看| 亚洲欧美制服综合另类| 麻豆成人小视频| 一区二区三区久久久久| 最近免费中文字幕大全免费第三页 | 亚色视频在线观看| 欧美美女被草| 国产精品自拍毛片| 亚洲国产中文字幕久久网 | 国产精品99精品| 狠狠操视频网站| 国产精品欧美一区二区三区不卡| 国产精品一区二区免费不卡| 337p日本欧洲亚洲大胆色噜噜| 国产私拍一区| 在线日韩国产网站| 18成人免费观看视频漫画| 亚洲一区二区三区日本久久九| 成人av在线观| 日韩在线免费高清视频| 国产欧美日韩小视频| 亚洲精品中文字幕乱码三区91| 免费高清成人| 国产成人调教视频在线观看| 日韩毛片在线免费观看| 日本欧美爱爱爱| 无套白嫩进入乌克兰美女| 在线天堂中文| 免费h片在线观看| 亚洲人亚洲人色久| 亚洲激情自拍偷拍| 国产高清在线不卡| 久久久久久久久免费看无码| 尤物视频网址| 欧美日韩看看2015永久免费| 蜜臀久久久99精品久久久久久| 日韩一区二区三区四区五区六区| 欧美精品与人动性物交免费看| 日本xxxx黄色| 四虎永久在线精品免费网址| 日韩脚交footjobhd| 国产91丝袜在线18| 欧美激情成人在线视频| 亚洲不卡1区| 一级一片免费看| 国产视频在线播放| 国产一区二区不卡| 欧美日韩国产成人高清视频| www.亚洲自拍| 黄色网址电影| 99精品国产一区二区三区| 在线观看精品一区| 国产精品久久97| 免费无码国产v片在线观看| 国产黄色一区二区| 日韩精品三区| 丝袜美腿高跟呻吟高潮一区| 亚洲欧美制服第一页| 久久婷婷国产精品| 亚洲欧美自拍视频| 天天色天天操天天| 亚洲一级淫片| 国产精品美女一区二区三区| 国产自摸综合网| 五月天婷婷网站| 操你啦在线视频| 久久综合九色综合欧美就去吻| 亚洲第一区在线| 国产日产欧美视频| 国产成人精品自线拍| 在线亚洲a色| 日韩免费成人网| 国产原创精品在线| 五月综合网站| 国产精品婷婷| 久久91超碰青草是什么| 后入内射无码人妻一区| 成人免费一区二区三区视频网站| 国产69精品久久久久777| 国产精品中文字幕久久久| 日本在线视频免费| 91白丝在线| 一区二区激情小说| 黄色a级在线观看| 欧美性猛交xxxx免费看久久| 日韩免费特黄一二三区| 亚洲国产日韩在线一区模特 | 日韩在线观看免费| 级毛片内射视频| 日本电影在线观看网站| 国产亚洲成av人在线观看导航| 91丝袜美腿美女视频网站| 国产91av在线播放| 国产一区二区三区精品在线观看 | 精品一区二区免费视频| av网站在线免费| 人妻精品一区二区三区| 欧美 变态 另类 人妖| 国产精品久久久久久久久久久久午夜片 | 大片免费在线看视频| 波多野结衣av在线观看| 91在线高清视频| 亚洲一卡二卡三卡四卡无卡久久 | 91久久久久久| 欧美日韩一区二区三区在线| 成人免费在线小视频| 一本色道久久88综合日韩精品| 久久久999| 亚洲国产中文在线二区三区免| 国产高清美女一级毛片久久| 亚洲欧美精选| 成年人看片网站| 蜜桃导航-精品导航| 欧美性做爰毛片| 欧美蜜桃一区二区三区| 国产激情一区二区三区四区| 亚洲午夜精品视频| jizz中文字幕| 国产欧美熟妇另类久久久| 日韩精品免费视频一区二区三区| 亚洲国产成人精品女人久久久| 日本激情小视频| 人人视频精品| 欧美一区二区三区四区在线观看 | 夜夜躁很很躁日日躁麻豆| 国产精品毛片av| 欧美日韩午夜激情| 亚洲小视频网站| 免费的黄色片| 国产精品一区二区视频| 亚洲v日韩v欧美v综合| 色先锋影音av| 亚洲国产成人自拍| av免费中文字幕| 久草在现在线| 91国产免费看| 亚洲天堂岛国片| 日韩精品成人在线观看| 欧美成人免费在线观看| 国产精品久久免费| 国产欧美高清| 日韩欧美精品在线不卡 | 亚洲电影影音先锋| 亚洲天堂精品在线|