Js中的基本概念

前言:剛畢業的應屆生,學習前端時間并不長,昨天參加面試,一輪筆試,兩輪技術面試。尤其在技術面試的時候感覺到自己基礎知識還是搞的有些亂,也突然明白到了一個扎實的Js基礎對于之后的路是有多重要。準備把Js高級程序設計的重點知識從頭梳理一遍。特此記錄一下自己學習的一些自認為比較重要的筆記。看似最難走的路,可能卻是最快也是最穩的。

1.嚴格模式

是ECMAScript5引入的一個概念。目的是使Ecma3中的不確定行為得到處理,一些不安全的行為也會拋出錯誤。它的支持版本比較高,IE10+

2.標識符

就是函數、變量、屬性的名字。標識符不能用保留字和關鍵字,使用關鍵字會導致identitierExpected錯誤,保留字看特定引擎報錯

3.變量

Js變量是松散類型的,可以用來保存任何類型的數據。

如果變量定義在函數中,那么這個變量在函數退出后就會被銷毀。
e.g.

   function test() {var msg = 'hi';}console.log(msg) // 報錯

檢查一個錯誤:
報錯message未定義,為什么呢?
答:因為沒執行啊

4.數據類型

ECMA中一共有5種簡單數據類型(基本數據類型)數據類型:undefined null boolean string number,1種復雜數據類型:Object

  • Null : 就記住他叫空對象指針就行,所以typeof 是 Object。在定義一個暫時不用的對象變量時候,最好將這個變量賦值為null,體現出了它的概念特性,也區分了它和undefined的不同。
  • Boolean:if這種流控制語句,會自動將括號里的內容進行Boolean()操作
  • Number: NAN 表示應該返回數值的操作最后沒有返回數值,比如說2/'i',2/0不是NAN,是Infinity。第二點:NAN與任何值都不相等, 包括NAN。有一個函數isNaN(),這個函數的具體思路為:先看能不能轉化成數值(10,'10',Boolean),如果能則返回flase,不能的話返回true。理解number和parseInt的區別:parseInt('')是NAN,而Number是0;parseInt遇上非數字字符會停止,而Number直接NAN,比如小數點
  • String:數值,布爾值,對象,和字符串都有toString()方法。只有number下的toString方法有第二個參數,表示轉化成幾進制后的值,其實有個String()方法更好一些,如果是null返回null,如果是undefined返回undefined,如果不是這兩個將默認使用toString()方法;另外一個小技巧,把某個值轉化為字符串直接用+""就可以了
  • Object:Object每個實例都存在一些屬性和方法:constructor,hasOwnproperty,toString …

5.操作符

  • 一元操作符(++,--,+,-)

    1. 如果對于字符串進行操作,會返回NAN
    2. s1 = +s1 ->相當于把s1轉化成數值型(前提看s1之前是什么類型,規則不同)
    3. s1 = -s1 ->相當于把s1轉化成數值的同時變成了負值
  • 位操作符

    1. 按位非(~)
      var num1 = 25;
      var num2 = ~num1
    2. 按位或(|)
    3. 按位與(&)
    4. 按位異或(^)
  • 邏輯操作符:邏輯操作符都是短路操作,如果第一個操作能決定結果,就不執行第二個操作
  • 加減法操作符

    • 注意以下問題:"a:"+1+2 //應該輸出a12而不是a3
    • var result1 = 5 - "true" //4
    • Var result2 = NaN -1 //NaN
    • Var result3 = 3 - "" // 3
    • Var result4 = 3 - "2" // 1
  • 關系操作符:

    • 如果在關系操作符比較中,有一個值是數值,那么另一個值也會被強制轉換成數值,如:

      • Var result = ‘23’ < 3 //true var result = ’23’ < ‘3’ //false
    • 任何操作數與NaN比較都是false

      • Var result1 = NaN < 3 //false
      • Var result2 = NaN >= 3 //false
  • 相等操作符

    • ==和!=是先進行轉換再比較
    • ===和!==是不轉換直接進行比較
    • 所以由于相等(== !=)存在數據類型的轉換問題,為了保持代碼類型的嚴謹性最好用 ===,還有一個細節,如果用相等符號進行比較,雖然比較的過程中可能會進行類型的轉換,但不影響最終的變量類型e.g:
    var strEg = '1';
    if(strEg == 1){
    console.log(typeof strEg)  // string
    }
    console.log(typeof strEg)  // string

6.語句

1.label,continue和break
break是立即退出當前層的循環,continue是重新開始下一層的循環,開始下一層的循環,例子

var num = 0;
for(var i=0;i<10;i++) {for(var j=0;j<10;j++) {if(i == 5 && j == 5) {break; //TODO:95// continue; //99}num ++}
}

label和continue,break連用,可以起到在那層退出(break)或在那層強制執行下次循環(continute)作用,例如

var num = 0;
Outermost:
for(var i=0;i<10;i++) {for(var j=0;j<10;j++) {if(i == 5 && j == 5) {break Outermost; }num ++ // 55}
}var num = 0;
Outermost:
for(var i=0;i<10;i++) {for(var j=0;j<10;j++) {if(i == 5 && j == 5) {continue Outermost; }num ++ // 95}
}

2.with語句
會導致性能下降,一般不用。為什么不能直接用對象代替呢?

3.switch語句

switch語句中的條件判斷是全等操作,沒有類型轉換的操作。

7.函數

1.Return:只能用于函數中,立即退出函數并返回值。不能用在if,for的代碼塊中。如果return的值為空,則立即停止執行函數,并返回undefined
2.傳遞的參數和arguments并不是同一個內存空間,只是他們的值是同步的,同時argument的長度是由執行時傳入的參數決定的,而不是定義時決定的。
3.沒有重載

這篇只是一些簡單的基礎知識點,之后會把這些細小知識點分別展開寫成文章

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

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

相關文章

oracle 查詢時間點數據_oracle統計時間段內每一天的數據(推薦)

下面給大家介紹oracle統計時間段內每一天的數據&#xff0c;具體sql語句如下所示&#xff1a;1. 生成1000個隨機數SELECT ROWNUM RN,DBMS_RANDOM.VALUE(0, 1000) RANDOMFROM DUALCONNECT BY ROWNUM < 1000;注&#xff1a;DBMS_RANDOM.VALUE(A, B)是隨機數產生函數, A是區間的…

dubbo服務的運行方式

1、使用Servlet容器運行&#xff08;Tomcat、Jetty等&#xff09;----不可取 缺點&#xff1a;增加復雜性&#xff08;端口、管理&#xff09; 浪費資源&#xff08;內存&#xff09; 假設1個服務模塊時&#xff0c;需要1臺tomcat&#xff0c;消耗3個端口&#xff0c;和200M…

Java讀取HTML傳人文件,java讀取html文件并獲取body中所有的標簽及內容的案例.pdf

java讀讀取取html文文件件,并并獲獲取取body中中所所有有的的標標簽簽及及內內容容的的案案例例這里的獲取的是html文件中body 中的所有標簽以及內容package com.lmt.service.file;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import j…

插件translator_Zotero Jasminum 插件的更新記錄

Jasminum 插件發布后 林知&#xff1a;簡單的Zotero CNKI 中文插件?zhuanlan.zhihu.com受到一些同學的關注&#xff0c;同時也收到許多反饋。我寫這個插件的初衷就是想讓大家在Zotero上能更方便的使用知網&#xff0c;尤其是人文社科相關專業的同學&#xff0c;他們尤其依賴中…

Tomcat的三個端口

8005 <Server port"8005" shutdown"SHUTDOWN"> 關閉tomcat通信接口 8009 <Connector port"8009" protocol"AJP/1.3" redirectPort"8443"/> 與其他http服務器通信接口&#xff0c;用于http服務器集合 8080…

計算機一級考試word題主要,2017年計算機一級考試word題及答案

1 / 7 2017 年計算機一級考試 及答案 計算機還是人們的學習工具和生活工具。借助家用計算機、個人計算機、計算機網、數據庫系統和各種終端設備&#xff0c;那么 2017 年計算機一級考試 及答案有哪一些 ?下面是 才小編收集整理的 2017 年計算機一級考試 及答案&#xff0c;歡迎…

ubuntu18.04 用xhell連接失敗

ifconfig命令有用之后&#xff0c;又發現xhell連接不上ubuntu18.04版本的虛擬機&#xff0c;原因是ubuntu18.04默認沒有安裝ssh服務。 使用以下命令安裝 sudo apt-get install openssh-server 安裝完成后,啟動ssh服務 sudo /etc/init.d/ssh start 查看ssh進程&#xff0c;若出現…

extjs中元數據_json – 如何配置ExtJS 4 Store(代理和閱讀器)來讀取元數據

我的問題是除了totalRecords之外如何獲取元數據,在我的例子中它是版本,代碼,searchquery(請查看json).{"result": {"version":"1","code":"200","searchquery": "false","totalRecords": &qu…

伍德里奇計量經濟學第五版第四章計算機操作,伍德里奇計量經濟學第四章

伍德里奇計量經濟學第四章2016年10?25? 星期? 下午10:21 Page 1User: ?建英name: log: /Users/wangjianying/Desktop/Chapter 4 Computer exercise.smcllog type: smclopened on: 25 Oct 2016, 22:20:411. do "/var/folders/qt/0wzmrhfd3rb93j2h5hhtcwqr0000gn/T//SD1…

2018百度之星程序設計大賽 - 資格賽 1002 子串查詢

子串查詢 Accepts: 1262 Submissions: 5335 Time Limit: 3500/3000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others) Problem Description 度度熊的字符串課堂開始了&#xff01;要以像度度熊一樣的天才為目標&#xff0c;努力奮斗哦&#xff01; 為了檢驗你是否…

mysql sleep詳解_MySQL中sleep函數的特殊現象示例詳解

前言MySQL中的系統函數sleep&#xff0c;實際應用的場景不多&#xff0c;一般用來做實驗測試&#xff0c;昨天在測試的時候&#xff0c;意外發現sleep函數的一個特殊現象。如果在查詢語句中使用sleep函數&#xff0c;那么休眠的時間跟返回的記錄有關。如下測試所示&#xff1a;…

使用maven構建dubbo服務的可執行jar包

maven 項目結構 <build><!-- 使用dubbo推薦的方法&#xff0c;打包成jar&#xff0c;調用main方法啟動 --><finalName>admin-service-user</finalName><resources><resource><targetPath>${project.build.directory}/classes</ta…

計算機網絡安全應具備的功能,2016計算機專業知識:網絡系統安全體系具備功能攻擊方法...

【導讀】為了幫助廣大考生更好的備考&#xff0c;中公事業單位考試網提供2016年計算機專業知識《網絡系統安全體系具備功能攻擊方法》學習&#xff0c;為考生定制計算機基礎知識復習計劃。一、網絡系統安全體系具備功能1.訪問控制;2.檢查安全漏洞;3.攻擊監控;4.加密通訊;5.認證…

Linux的標準I/O和管道

標準輸入輸出與管道 1、標準輸入和輸出程序&#xff1a;指令數據指令&#xff1a;計算、加減乘除數據&#xff1a;輸入數據、輸出數據2、在Linux中每一個打開的文件都會分配一個當前進程中唯一的文件描述符&#xff0c;用來標識文件的狀態fd:file descripor3、Linux提供給程序…

頁面url帶參數_微信小程序云開發教程微信小程序的JS高級頁面間數據傳遞

同學們大家好&#xff0c;我是小伊同學&#xff0c;上一節課我們講解了全局數據的讀寫方法&#xff0c;那么在頁面間同樣需要數據交互&#xff0c;今天我們就來學習這部分內容。在微信小程序中&#xff0c;我們常常需要將數據在頁面之間進行傳遞&#xff0c;比如用戶的身份信息…

軟件測試員對英語,軟件測試工程師英語面試題

以下是軟件測試工程師部分英語面試中的參考回答&#xff0c;僅提參考&#xff1a;Interview English&#xff1a;一&#xff0c;Why are you interested in working for our company?1。Because your company has a good sales record.2。Because your operations are global,…

OpenGL——二維幾何變換

平移、旋轉、縮放的實現 #include<iostream> #include <math.h> #include<Windows.h> #include <GL/glut.h>using namespace std;GLsizei winWidth 600, winHeight 600;GLfloat xwcMin 0.0, xwcMax 225.0; GLfloat ywcMin 0.0, ywcMax 225.0;cla…

在Eclipse 中打開當前文件夾

原文連接&#xff1a;https://www.cnblogs.com/panie2015/p/5985053.html ------------------------------------------------------------------------ 最近試過好多次&#xff0c;安裝插件來 在Eclipse 中打開當前文件所在文件夾&#xff0c;結果總是不甚如意。 煩躁了&…

清華大學計算機系主任應明生,清華大學計算機科學與技術系導師簡介:應明生...

對考生而言&#xff0c;充分了解高校、專業以及師資情況是一項最基礎、最關鍵的工作。以下是中公考研小編為大家整理的“清華大學計算機科學與技術系導師簡介&#xff1a;應明生”的相關信息&#xff0c;希望對同學們有所幫助。姓名&#xff1a;應明生職稱&#xff1a;教授郵件…

在VS2013平臺下如何快速解決c++代碼內存泄漏問題

在學習FPS3000人臉關鍵點定位算法時&#xff0c;發現github上的源碼&#xff0c;存在大量的內存泄漏問題&#xff0c;在訓練的時發現內存一直在增長&#xff0c;測試的時候也存在內存無法徹底釋放的問題。 一直以為是存放模型參數vector<class>結構的問題&#xff0c; 采…