JavaScript學習筆記(第一天)

来源:https://www.cnblogs.com/xiariyedewanfeng/archive/2018/11/20/9992119.html
-Advertisement-
Play Games

javascript個人筆記 JavaScript的組成 JavaScript是一種運行在客戶端的腳本語言 ​ 1. ECMAScript 標準 js的基本的語法 2. DOM Document Object Model 文檔對象模型 3. BOM Browser Object Model 瀏覽器對 ...


javascript個人筆記

JavaScript的組成

JavaScript是一種運行在客戶端的腳本語言

  1. ECMAScript 標準----js的基本的語法
  2. DOM------Document Object Model 文檔對象模型
  3. BOM------Browser Object Model 瀏覽器對象模型

JavaScript是什麼

  1. 是一門腳本語言
  2. 是一門解釋性語言
  3. 是一門動態類型的語言
  4. 是一門基於對象的語言

js和 html不一樣的是js是一門編程語言,而html是一門編程語言

補充:
1,腳本語言和編譯語言的區別
編譯語言需要通過編譯器編譯成電腦可執行的而二進位程式(例如C語言)
腳本語言是不需要經過編譯器的編譯,就可以通過相應軟體(例如瀏覽器)來直接運行的程式(例如shell,sql,cmd,js)

腳本語言是通過解釋器來,在腳本語言運行的過程中進行逐行解釋並運行的;也就是說只有程式運行的時候解釋器才對腳本語言進行解釋,因而腳本語言每執行一次,就需要編譯一次,所以解釋性腳本語言其運行的效率相對較低

2,java和python不是真正意義上的腳本語言和編譯語言

java和python會將寫好的源代碼文件編譯為對應的位元組碼文件(此步操作為編譯的過程),隨後在將位元組碼文件載入到虛擬機中,通過虛擬機中的解釋器根據不同的操作系統來對位元組碼文件進行解釋,所以java和python都是一門先編譯後解析的語言。

JavaScript的起源

js原名不是JavaScript,而是LiveScript;

js和java沒有任何的關係;

​ 世界上第一臺瀏覽器是網景公司(NetScape)發明的Naviagtor瀏覽器

JS的作用:是解決用戶和瀏覽器之間進行交互的問題

​ 在瀏覽器中,有一個JavaScript引擎,專門用來解析js腳本,以使js可以直接通過瀏覽器來運行

​ 同理瀏覽器還有還有引擎專門用來解析html和CSS的瀏覽器引擎(此處詳見html的筆記)

JS的書寫位置

js的代碼可以分三個地方寫:
​ 1.在html的文件中,script的標簽中寫js代碼

<script>
    //js代碼
    alert("鋤禾日當午,地雷埋下土,小蘇走過去,炸成二百五");//在頁面中彈出對話框
 </script>

​ 2.js代碼可以在html的標簽中寫----內嵌形式

<input type="button" value="按鈕" onclick="alert('被點了');"/>

​ 3.在js文件中可以寫js代碼,但是需要在html的頁面中引入 script的標簽中的src="js的路徑" ---外聯形式

<script src="test.js"></script> //這是寫在需要引入js的html文件中的

使用JS需要註意的幾個問題:

1,如果在一對script標簽中,如果有一行js的代碼出現了問題,那麼該行代碼以後的語句也不會被執行

2,如果一對script標簽中,如果js的代碼出現了問題,其是不會影響其他script標簽對的

3,script的標簽中可以寫什麼內容 type="text/javascript"(標準寫法)或者寫language="JavaScript"(提高相容性用)都可以

​ 但是在h5中 這是可以省略的(ps:如果是使用h4之前的嚴格模式或是使用h4的過渡模式的話,就必須為其加上上述屬性)

4,有可能會出現這種情況:script標簽中可能同時出現type和language的寫法.

5,script標簽在頁面中可以出現多對

6,script標簽一般是放在body的標簽的最後的,有的時候會在head標簽中,目前講課的時候都在body標簽的後面(即body中的最後面){如果將js的代碼放置到html標簽的外部,在瀏覽器解析的時候其也會將js放入到body的最後邊的,但是這是增加瀏覽器的操作負擔,所以是不提倡的}

7,如果script標簽是引入外部js文件的作用,那麼這對標簽中不要寫任何的js代碼(就是寫了,也不起作用。而且到了JQuery的時候,script標簽中的代碼會和外部文件產生衝突,從而導致代碼出現錯誤),如果要寫,重新寫一對script標簽,裡面寫代碼

WebStorm使用小技巧:
在webstorm工具中打開頁面:
    1. 右上角有瀏覽器圖標,直接點擊即可
    2. 快捷鍵: Alt+F2 回車或者上下鍵選擇

變數:

1.操作的數據都是在記憶體中操作

2.js中存儲數據使用變數的方式(名字,值--->數據)

3.js中聲明變數都用var---->存儲數據,數據應該有對應的數據類型

4.js中的字元串類型的值都用雙引號或者單引號

//變數聲明
var name;
//變數初始化
name = "小黑";

註意的基本的代碼的規範
​ 1. js中聲明變數都用var
​ 2. js中的每一行代碼結束都應該有分號;(js書寫的時候可以沒有分號結尾,但是一般建議使用分號結尾)
​ 3. js中的大小寫是區分的: var N=10; n
​ 4. js中的字元串可以使用單引號,也可以使用雙引號,目前我們暫時使用雙引號

變數名的註意問題---變數名的命名規範,要遵循駝峰命名法
​ 1.變數的名字要有意義,
​ 2.變數名有一定的規範:一般以字母,$符號,下劃線開頭,中間或者後面可以有$符號,字母,數字
​ 3.變數名一般都是小寫的
​ 4.變數名如果是多個單詞,第一個單詞的首字母是小寫的,後面的所有的單詞的首字母都是大寫的,這種命名方式稱為:駝峰命名法
​ 5.不能使用關鍵字(系統自帶的一些單詞,不能使用)
​ 6.不會單詞用拼音,拼音也要遵循駝峰命名法

輸出js的幾個方法

var num = 100;
//1,在瀏覽器中以彈窗的形式輸出數據
alert(num);
//2,在瀏覽器中的Console(控制台 快捷鍵為F12)中輸出
console.log(num);
sublime使用小技巧:
1,格式化代碼 Ctrl+Alt+L(使用該代碼的前提條件是,原本的代碼是正確的,沒有錯誤的)

註釋

1,單行註釋 //

2,多行註釋 /**/ {不可以嵌套使用}

數據類型

JS中數據類型有以下幾種:

一,6大原始數據類型:

number(數字類型[整數和浮點數]) string(字元串類型) boolean(布爾類型)
null(空) undefined(未定義的) object(對象)

一般情況下 0表示假 非0值表示真

①.可能出現undefined的情況:

1,變數在定義後,沒有賦值,那麼輸出的就是undefined

2,函數在調用後,沒有返回值,但是卻使用變數來接收了,此時也是undefined

②.NAN 表示的是not a number

③.使用typeof來獲取變數的數據類型

使用形式有

​ typeof 變數名;

​ typeof (變數名);

var num = null;
alert(typeof num); //返回的是object
alert(String(num));//返回的是null
//在上述代碼中,如果使用第二行代碼,其表示的是一個沒有存放任何值的對象,所以其返回的數據類型是object
//如果使用第三行代碼,其表示的是將沒有任何值的對象中的值取出來,並轉換為字元串後輸出,所以其返回的數據類型的是null

js可以表示除了二進位之外的所有進位

八進位以0開頭 十六進位以0x開頭

Number的數值範圍

最小值:Number.MIN_VALUE,這個值為: 5e-324
最大值:Number.MAX_VALUE,這個值為: 1.7976931348623157e+308
無窮大:Infinity
無窮小:-Infinity

數字類型有範圍: 最小值和最大值
console.log(Number.MAX_VALUE);//數字的最大值
console.log(Number.MIN_VALUE);//數字的最小值
//小數因為精度而存在的BUG
 //不要用小數去驗證小數.
//    var x=0.1;
//    var y=0.2;
//    var sum=x+y; //在js中0.1+0.2=0.300000000000000004
//    console.log(sum==0.3);//false

數值判斷

  • NaN:not a number
  • NaN 與任何值都不相等,包括他本身
  • isNaN: is not a number
  • 可以使用isNaN() 來判斷需要比較的對象 其不是一個數字

字元串類型

補充知識點:轉義字元

1, 字元串即可以使用單引號,也可以使用雙引號

2,獲取字元串的長度 ====> str.length

//只要有一個是字元串,其他的是數字,那麼結果也是拼接,不是相加
//如果有一個是字元串,另一個不是字元串,使用- 號,此時會發生計算

//    var str1="10";
//    var str2=20;
//    console.log(str1+str2); //1020

//    var str1 = "10";
//    var str2 = 5;
//    //瀏覽器幫助我們自動的把字元串類型轉成了數字類型,這種方式叫:隱式轉換(★)
//    console.log(str1-str2); //5

Boolean類型

  • Boolean字面量: true和false,區分大小寫
  • 電腦內部存儲:true為1,false為0

Undefined和Null

  1. undefined表示一個聲明瞭沒有賦值的變數,變數只聲明的時候值預設是undefined
  2. null表示一個空,變數的值如果想為null,必須手動設置

數據類型轉換

如何使用谷歌瀏覽器,快速的查看數據類型?

字元串的顏色是黑色的,數值類型是藍色的,布爾類型也是藍色的,undefined和null是灰色的

轉換成字元串類型

  • toString()

    var num = 5;
    console.log(num.toString());
  • String()

    String()函數存在的意義:有些值沒有toString(),這個時候可以使用String()。比如:undefined和null
  • 拼接字元串方式

    num + "",當 + 兩邊一個操作符是字元串類型,一個操作符是其它類型的時候,會先把其它類型轉換成字元串再進行字元串拼接,返回字元串

轉換成數值類型

  • Number()

    Number()可以把任意值轉換成數值,如果要轉換的字元串中有一個不是數值的字元,返回NaN
    也就是說只有全部都是數字的時候,Number方法才可以把需要轉換的對象轉換為數字,否則就會轉換為NAN
  • parseInt()

    var num1 = parseInt("12.3abc");  // 返回12,如果第一個字元是數字會解析知道遇到非數字結束
    var num2 = parseInt("abc123");   // 返回NaN,如果第一個字元不是數字或者符號就返回NaN
  • parseFloat()

    parseFloat()把字元串轉換成浮點數
    parseFloat()和parseInt非常相似,不同之處在與
      parseFloat會解析第一個. 遇到第二個.或者非數字結束
      如果解析的內容里只有整數,解析成整數
  • +,-等運算

    var str = '500';
    console.log(+str);        // 取正
    console.log(-str);        // 取負
    console.log(str - 0);

轉換成布爾類型

  • Boolean()

      0  ''(空字元串) null undefined NaN 會轉換成false  其它都會轉換成true

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • UncaughtExceptionHandler.h UncaughtExceptionHandler.m 開啟異常捕捉 異常示例 運行效果 ...
  • 一、概念:簡言之,即在顏色緩存區和深度緩存區中,新舊顏色的覆蓋和替換問題;已經存在於緩存區的為目標顏色,即將進入緩存區的為源顏色; 二、應用場景:在不透明的圖形前繪製一個透明的圖形; 三、主要代碼實現 //核心代碼 四、效果 GitHub ...
  • 這是網上抄的一篇Android學習路徑,希望記錄下來以供自己隨時的學習,所有的博客也基本按照裡面的知識點來發散。 1Java 基礎 Java Object類方法 HashMap原理,Hash衝突,併發集合,線程安全集合及實現原理 HashMap 和 HashTable 區別 HashCode 作用, ...
  • 一個Android的用到相機的service程式,在比較少的情況下會出現在系統啟動時crash。log顯示是在調用ACameraDevice_createCaptureSession時返回錯誤ACAMERA_ERROR_STREAM_CONFIGURE_FAIL(這個程式是用jni操作相機的),co ...
  • 本期給大家帶來是結合CSS3畫出來的一個立體3d魔方,結合了js讓你隨心所欲想怎麼轉,就怎麼轉,主要使用了CSS的tranform、transition、-webkit-perspective、animation、rotate、translate、scale、radial-gradient、line... ...
  • (原創)超詳細一步一步在eclipse中配置Struts2環境,無基礎也能看懂 1. 在官網https://struts.apache.org下載Struts2,建議下載2.3系列版本。從圖中可以看出,既可以分開下載子文件,又可以一次全部下載。 這裡我後面只用到struts-2.3.36-apps. ...
  • form表單的enctype屬性:規定了form表單數據在發送到伺服器時候的編碼方式 application/x www form urlencoded:預設編碼方式 multipart/form data:指定傳輸數據為二進位數據,例如圖片、mp3、文件 text/plain:純文本的傳輸。空格轉 ...
  • 總結react中常常被忽略的小知識點 1)即使state里設置成和之前的值一樣,render也會重新渲染 2)父組件傳給子組件的屬性(props是只讀的,在子組件中已在this.state里將屬性賦值給定義的變數),如果屬性在父組件中可以操作改變值的話,那麼在子組件中就不建議修改,如果屬性在父組件不 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...