靡語IT:JavaScript_概述、基礎

一、JavaScript 概述

javaScript 語言主要是完成頁面的數據驗證,因此它運行在客戶端, 需要運行瀏覽器來解析執行 JavaScript 代碼。js 是網景公司 (Netscape)的產品,最早取名為 LiveScript 最后借 java 的熱度 改為 javaScript。

JS 是弱類型(類型可變)JAVA 是強類型(確定好的變量類型,類型不可變)

編寫第一個 JavaScript

二、JavaScript 特點

  1. js 是腳本語言,采用小程序端的方式實現編程

  2. js 是解釋性語言,根據代碼順序逐一解釋,其中某一行有錯,js 就會卡在此處無法進入下一步。

  3. Js 是一種基于對象的語言

  4. js 是一種安全性語言,具有 web 安全特性不允許訪問本地 硬盤,也不允許對網絡文件進行修改,只能通過瀏覽器進行瀏覽或者動態交互。

  5. js 跨平臺性

JS 注釋

1.單行注釋以 // 開頭。

2.多行注釋以 /* 開始,以 */ 結尾

三、js 基本語法

1、區分大小寫

2、分號為每一行的結束符

3、注釋,單行注釋以//開頭,/*多行注釋*/

4、命名規范

命名規范指的就是標識符,就是變量,函數的名字或者函數的 參數名,變量名命名方法常見的有匈牙利命名法、駝峰命名法 和 帕斯卡命名法。

駝峰法命名規范(包括函數名,變量等):

  1. 名字中可以有字母、下劃線或者美元符號、數字

  2. 必須以字母、下劃線或者美元符號開始,不能數字開頭,也不能使用特殊符號。

  3. 命名不能是系統的關鍵字:比如 new ,if,class...... 區分大小寫

  4. 命名最好用有意義的名稱。比如說 name,people......

四、輸出輸入工具

4.1.輸出彈窗

彈出帶有一條指定消息和一個確定按鈕的警告框

語法: alert(對話框中顯示的純文本)

4.2.輸出到頁面,會以HTML的語法解析里面的內容

語法: document.write(參數 1,參數 2,參數 3,...) ;

使用 document.write() 方法將內容寫到 HTML 文檔中。此功能可用于寫入文本和 HTML。

請使用 document.write() 僅僅向文檔輸出寫內容。

如果在文檔已完成加載后執行 document.write(),整個 HTML 頁面將被覆蓋。

4.3.輸入彈窗

顯示可提示用戶進行輸入的對話框

語法: prompt( 對話框中顯示的純文本,默認的輸入文本 );

兩個參數均為可選。

4.4.控制臺輸出

console.log("我是日志信息");

在控制臺上輸出的信息,瀏覽器按下 F12 打開控制臺,Console即控制臺 可以接受任何字符串、數字和 js 對象,可以看到清 楚的對象屬性結構,不會阻塞程序的執行.

五、DOM的堵塞

js 對 DOM 樹的阻塞

  1. DOM: js 操作網頁的接口,全稱為“文檔對象模型”(Document Object Model)。可以簡單理解成頁面中的元素

  2. DOM 樹:元素和元素之間的關系,可以簡單理解成頁面中的元素

  3. js 的執行會阻塞頁面結構的加載,此時 DOM 樹是不完整的,這

樣在調用一些 js 代碼時就可能報錯

  1. 防止阻塞的兩種方法:

(1)把所有 js 代碼放在 body 區域的最后

(2)添加 window.onload 事件,表示網頁加載完畢后(包括圖片、css 文件等等)執行的操作

六、JS的阻塞

js 代碼有錯誤時,從此處代碼開始以后的代碼都不會被執行

檢查錯誤代碼方法:

  1. 看控制臺信息

  2. 使用 alert()語句確定錯誤范圍,再逐一查錯。

七、嵌入JavaScript代碼的三種方式

  1. 內部引入 寫在<script>標簽中

<script type=”text/javascript”>...........</script>
  1. 以外部文檔形式連接到 HTML 文檔中

<script type="text/javascript" src="one.js"></script>
  1. 直接在 HTML 標簽中的 js 代碼

<a href="javascript:alert('我是在 html 標簽里的 js 代碼 ')">提示框</a> 

? 引入區域

  • js 可以引入文檔中的任何區域,js 都可以正確執行

  • js 通常寫在 head 區域或者 body 區域

? 執行順序

  • 代碼在執行過程中,另一段代碼想要執行就必須等當前代碼執行完成后才可以進行

  • JS 是按照語句出現的先后順序執行,和引入方式無關

八、常量

常量是從始至終不能被改變的數據,常量通常用來表示固定不變的量,比如圓周率,萬有引力常量。

準確的來說,在JavaScript中,確實沒有定義常量的具體語法,我們可以使用標識符大寫的方式來當作定義了常量

var PAI = 3.14;
var UPPER_BOUND = 100;

九、變量

變量:從字面上看,變量是可變的的量,從編程角度講,變量是用于存儲數據的容器

實例

var x;
var x = 5;
var x = "John";

注:變量不僅可存放具體值,還可以存放運算結果

實例

var x;              // x 為 undefined
var x = 5;          // 現在 x 為數字
var x = "John"      // 現在 x 為字符串

注:JavaScript 擁有動態類型。這意味著相同的變量可用作不同 的類型,同一個變量可以多次賦值,后賦的值會覆蓋前面的值

練習 1

使用 js 提供的輸入款,獲取用戶輸入的信息,名字,年齡,地址,電話號碼,

使用 js 語法輸出在頁面的 div 中。

練習 2

交換兩個變量的值,a=22,b=33,使用控制臺輸出 a=33,b=22

十、數據類型

字符串(String)、

數字(Number)、

布爾(Boolean)、

數組(Array)、

對象(Object)、

空(Null)、

未定義(Undefined)。

10.1.Number:數值類型

整數和小數(js 的浮點數的運算能力很差,所以不建議使用 js 做浮點數的運算)

JavaScript 只有一種數字類型。數字可以帶小數點,也可以不帶:

實例

var x1 = 34.00;         // 使用小數點來寫
var x2 = 34;            // 不使用小數點來寫
  1. Js 中整數和小數統稱為 number 類型

var a = 120;
var b = 0.120;
  1. js 中的數值最大值和最小值

Console.log(Number.MAX_VALUE);      // 1.7976931348623157e+308 Console.log(Number.MIN_VALUE);    ? // 5e-324
  1. 數字型三個特殊值

  • Infinity 代表無窮大,大于任何數值

  • -Infinity 代表無窮小,小于任何數值

  • NaN Not a Number 代表一個非數值

  1. isNaN()

用來判斷一個變量是否為非數值類型,返回 true/false

10.2.String:字符串類型

只要是引號括起來的都是字符串類型

可以在字符串中使用引號,只要不匹配包圍字符串的引號即可

實例

var answer = "It's alright";
var answer = "He is called 'Johnny'";
var answer = 'He is called "Johnny"';
  1. 字符串引號嵌套

Js 使用引號規則:外雙內單,外單內雙

var strMsg='我是"IT老王"我在欣知大數據'
  1. 字符串轉義字符

轉義符解釋說明
\n換行符,n 是 newline 的意思
\\斜杠 \
\'' 單引號
\"" 雙引號
\ttab 縮進
\b空格,b 是 blank 的意思
  1. 字符串長度

字符串是由若干個字符組成的,這些字符數量就是字符串的長度。

通過字符串的 length 屬性可以獲取字符串長度

var strMsg = "我是帥氣多金的程序猿!!!" 
alert(strMsg.length);       // 13
  1. 字符串拼接

多個字符串之間可以使用+進行拼接,拼接方式為 字符串+任意類型=新的字符串

拼接前會把字符串相加的任何類型轉為字符串,在拼接起來

//1.字符串相加 
Console.log(“hello”+” ”+”world”);       //hello world 
//2.數值字符串相加 
Console.log(“12”+” ”+”12”);             //1212 
//3.數值字符串+數值 
Console.log(“12”+” ”+12);               //1212

10.3.Boolean:布爾類型

只有兩個值 false/true(常用在條件測試中,運算中 flase=0/true=1)

10.4.Undefined:空變量

表示變量沒有值

10.5.null:空對象指針

是一個只有一個值的數據類型(可以將變量設置為 null 來清空變量)

Undefined 這個值表示變量不含有值。

可以通過將變量的值設置為 null 來清空變量。

實例

cars = null;
person = null;

10.6.Object:對象

由花括號分割,對象的屬性以名稱和值對的形式定義(name:value)來定義

JavaScript 數組屬于對象

實例

var cars = ["Saab","Volvo","BMW"];

JavaScrip 對象

實例

var person={ firstname : "John", lastname : "Doe", id : 5566 };

對象屬性有兩種尋址方式:

實例

name = person.lastname;
name = person["lastname"];

10.7.獲取變量數據類型

typeof: 可以使用 typeof(變量名)查詢數據類型

10.8.數據類型的相互轉化

  1. 轉換為字符串類型

方式說明案例
toString()轉成字符串var num = 1; alert(num.toString());
String()強制轉換轉成字符串var num = 1; alert(String(num));
加號拼接字符串和字符串拼接的結果都是字符串var num = 1; alert(num + "我是字符串");
  • toString() 和 String() 使用方式不一樣。

  • 三種轉換方式,我們更喜歡用第三種加號拼接字符串轉換方式,這一種方式也稱之為隱式轉換。

  1. 轉換為數值型(重點)

方式說明案例
parseInt(String) 函數將String類型轉成整數數值型parseInt('78')
parseFloat(String) 函數將String類型轉成浮點數數值型parseFloat('78.21')
Number() 強制轉換函數將String類型轉換為數值型Number('12')
js 隱式轉換(- * /)利用算術運算隱式轉換為數值型'12' - 0
  • 注意 parseInt 和 parseFloat 單詞的大小寫,這2個是重點

  1. 轉化為布爾值

方式說明案例
Boolean()函數其他類型轉成布爾值Boolean('true');
  • 代表空、否定的值會被轉換成false,如''、0、NaN、null、underfined

  • 其余值都會被轉換為true

Undefine 和 null 是不能轉化成 String 類型的

Undefine(NaN)和 null(0)、true(1)、false(0)可轉化成 number 類型

練習 3
  • 彈出一個輸入框(prompt),讓用戶輸入出生年月(用戶輸入)

  • 把用戶輸入的值用變量保存起來,然后用今年的年份減去變量值,結果就是現在的年齡(程序內部處理)

  • 彈出警示框(alert),把計算的結果輸出(輸出結果)

十一、運算符

11.1.算術運算符

?

運算符描述例子x 運算結果y 運算結果
+加法x=y+275
-減法x=y-235
*乘法x=y*2105
/除法x=y/22.55
%取模(余數)x=y%215
++自增x=++y66
x=y++56
--自減x=--y44
x=y--54

?

用于字符串的 +

  • 運算符用于把文本值或字符串變量加起來(連接起來)。

  • 要想在兩個字符串之間增加空格,需要把空格插入一個字符串之中:

  • 如果把數字與字符串相加,結果將成為字符串

  • 除了加法字符串和數值相減,相除,求余...

  • 當字符串是純數字,計算機會將字符串轉為數值型進行減法計算

  • 當字符串不是純數字或者無數值,則返回的值是 NAN

11.2.賦值運算符

運算符例子等同于運算結果
=x=yx=5
+=x+=yx=x+yx=15
-=x-=yx=x-yx=5
*=x*=yx=x*yx=50
/=x/=yx=x/yx=2
%=x%=yx=x%yx=0

11.3.比較運算符

  • 相等運算符 == :判斷兩個操作數是否相等。不同的數據類型會自動轉換為相等的數據類型再做比較。

  • 等同運算符=== :全等(值和類型),嚴格意義的相等,兩個操作數的值和他們的類型必須完全一致。

  • 不等于:!=

  • 不等同運算符: !==

  • 大于:>

  • 小于:<

  • 大于或等于:>=

  • 小于或等于:<=

11.4.邏輯運算符

邏輯運算符用于測定變量或值之間的邏輯。

  • && and(與)

  • || or(或)

  • ! not(非)

11.5.三元運算/三目運算/三元表達式/條件運算符

根據條件在兩個語句中執行其中的一個,使用符號 ?:

語法如下:條件表達式?語句 1:語句 2

練習 4

輸入框中輸入一個數,與 18 比較,大于 18 則在頁面顯示成年小于則顯示未成年

十二、運算符的優先級

優先級運算符說明結合性
1[]、.、()字段訪問、數組索引、函數調用和表達式分組從左向右
2++ -- -~!delete new typeof void一元運算符、返回數據類型、對象創建、未定義的值從右向左
3*、/、%相乘、相除、求余數從左向右
4+、-相加、相減、字符串串聯從左向右
5<<、>>、>>>左位移、右位移、無符號右移從左向右
6<、<=、>、>=、instanceof小于、小于或等于、大于、大于或等于、是否為特定類的實例從左向右
7==、!=、===、!==相等、不相等、全等、不全等從左向右
8&按位”與“從左向右
9^按位”異或“從左向右
10|按位”或“從左向右
11&&短路與(邏輯”與“)從左向右
12||短路或(邏輯”或“)從左向右
13?:條件運算符從右向左
14=、+=、-=、*=、/=、%=、&=、|=、^=、<、<=、>、>=、>>=混合賦值運算符從右向左
15,多個計算按優先級算,然后從右向左

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

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

相關文章

C++多線程同步(上)

多線程同步 引言總述詳情互斥鎖示例運行結果分析條件變量示例一實現分析優化運行結果示例二實現代碼運行結果示例三實現代碼運行結果讀寫鎖示例實現代碼注意分析運行結果附言實現運行結果運行結果個人心得引言 項目中使用多線程,會遇到兩種問題,一種是對共享資源的訪問時需要…

關于運行flutter app 運行到模擬器出現異常提示

Exception: Gradle task assembleDebug failed with exit code 1 解決方案&#xff1a; 1.講當前文件的distributionUrl值改為 https://mirrors.cloud.tencent.com/gradle/gradle-7.4-all.zip

Redis 學習筆記 3:黑馬點評

Redis 學習筆記 3&#xff1a;黑馬點評 準備工作 需要先導入項目相關資源&#xff1a; 數據庫文件 hmdp.sql后端代碼 hm-dianping.zip包括前端代碼的 Nginx 啟動后端代碼和 Nginx。 短信登錄 發送驗證碼 PostMapping("code") public Result sendCode(RequestP…

超市售貨|超市售貨管理小程序|基于微信小程序的超市售貨管理系統設計與實現(源碼+數據庫+文檔)

超市售貨管理小程序目錄 目錄 基于微信小程序的超市售貨管理系統設計與實現 一、前言 二、系統功能設計 三、系統實現 1、微信小程序前臺 2、管理員后臺 &#xff08;1&#xff09;商品管理 &#xff08;2&#xff09;出入庫管理 &#xff08;3&#xff09;公告管理 …

CrossOver2024虛擬機軟件的優缺點分別是什么?

CrossOver虛擬機軟件的優缺點分別如下&#xff1a; 優點&#xff1a; 無需雙系統&#xff1a;用戶可以在Mac或Linux系統上直接運行Windows應用程序&#xff0c;無需安裝雙系統&#xff0c;從而節省了硬盤空間并避免了系統切換的麻煩。易于安裝和使用&#xff1a;CrossOver具有…

文件上傳---->生僻字解析漏洞

現在的現實生活中&#xff0c;存在文件上傳的點&#xff0c;基本上都是白名單判斷&#xff08;很少黑名單了&#xff09; 對于白名單&#xff0c;我們有截斷&#xff0c;圖片馬&#xff0c;二次渲染&#xff0c;服務器解析漏洞這些&#xff0c;于是今天我就來補充一種在upload…

RAW 編程接口 TCP 簡介

一、LWIP 中 中 RAW API 編程接口中與 TCP 相關的函數 二、LWIP TCP RAW API 函數 三、LwIP_Periodic_Handle函數 LwIP_Periodic_Handle 函數是一個必須被無限循環調用的 LwIP支持函數&#xff0c;一般在 main函數的無限循環中調用&#xff0c;主要功能是為 LwIP各個模塊提供…

web前端安全性——JSONP劫持

1、JSONP概念 JSONP(JSON with Padding)是JSON的一種“使用模式”&#xff0c;可用于解決主流瀏覽器的跨域數據訪問的問題。由于同源策略&#xff0c;協議IP端口有任意不同都會導致請求跨域&#xff0c;而HTML的script元素是一個例外。利用script元素的這個開放策略&#xff0…

vscode【報錯】yarn : 無法將“yarn”項識別為 cmdlet

問題 CMD下載完yarn可以查看到yarn版本&#xff0c;但是進入到vscode控制臺報錯無法識別&#xff0c;報錯內容如下&#xff1a; vscode【報錯】yarn : 無法將“yarn”項識別為 cmdlet、函數、腳本文件或可運行程序的名稱。請檢查名稱的拼寫&#xff0c;如果包括路徑&#xff…

@ 代碼隨想錄算法訓練營第8周(C語言)|Day57(動態規劃)

代碼隨想錄算法訓練營第8周&#xff08;C語言&#xff09;|Day57&#xff08;動態規劃&#xff09; Day53、動態規劃&#xff08;● 1143.最長公共子序列 ● 1035.不相交的線 ● 53. 最大子序和 動態規劃 &#xff09; 1143.最長公共子序列 題目描述 給定兩個字符串 text1 …

C#面:i++ 和 ++i 的區別

i 先參與左邊的運算&#xff0c;之后 i 自增&#xff1b; int i 5; int result i; // result的值為5&#xff0c;i的值變為6 i i 先自增&#xff0c;之后的值&#xff0c;參與左邊的運算&#xff1b; int i 5; int result i; // result的值為6&#xff0c;i的值也為6…

【一步步由簡入深,搞定FFT,持續更新中...】

作為一個傾向于形象思維的工程師&#xff0c;總想把復雜深奧的知識搞的方便理解&#xff0c;雖然上學時學過數字信號處理&#xff0c;仍然一知半解&#xff0c;現在想借著項目中涉及到的頻譜相關知識總結下來&#xff0c;在了解中逐步完善。 好了&#xff0c;首先要明確的概念是…

ffmpeg for android編譯全過程與遇到的問題

編譯前準備 編譯環境&#xff1a;Ubuntu16&#xff0c;可自行下載VMWare最新版并百度永久許可證或在服務器上安裝Ubuntu ffmpeg源碼&#xff1a;ffmpeg4.2.2 NDK下載&#xff1a;Android NDK r21e 有條件的最好還是在Liunx平臺下編譯吧&#xff0c;Windows平臺下編譯坑更多…

【計算機網絡】數據鏈路層|封裝成幀|透明傳輸|差錯檢測|PPP協議|CSMA/CD協議

目錄 一、思維導圖 ? 二、數據鏈路層功能概述 1.數據鏈路層概述 2.數據鏈路層功能概述——封裝成幀 3.數據鏈路層功能概述——透明傳輸 4.數據鏈路層功能概述——差錯檢測 三、數據鏈路層重要協議 1.數據鏈路層重要協議&#xff1a;PPP協議 2.數據鏈路層重要協議&#x…

js設計模式:備忘錄模式

作用: 封裝的對象可以在對象觸發行為時進行狀態的記錄與保存 也可以進行狀態的回退,恢復之前的狀態 示例: class Editor{constructor(){this.allText }edit(text){this.allText text}saveNow(){return new EditorText(this.allText)}backspacing(editorText){this.allText…

護眼臺燈哪個品牌更好用?五大好用護眼臺燈大爆料!

護眼臺燈相信大家都有所耳聞或者使用過,家里有小孩的可能了解更深,畢竟是孩子學習時需要使用的小家電。現在市面上的護眼臺燈種類可以說是多到眼花繚亂,甚至有些劣質的產品摻雜在里面,或許有些寶媽已經踩過一些坑了&#xff0c;護眼臺燈究竟哪個品牌更好用&#xff1f; &#x…

這個春節,爽了

四次醫院 請了一周假&#xff0c;準備開始愉快的長假。 結果第一天小孩就發燒了&#xff0c;趕緊送醫院拿藥。回到家才發現&#xff0c;給醫生看的驗血報告是上一次的&#xff0c;那是好幾個月之前的。 但是藥已經吃了&#xff0c;這是吃錯藥了呀&#xff01;&#xff01; …

手機中有哪些逆向進化的功能

手機中有哪些逆向進化的功能&#xff1f;逆向進化是指明明很優秀的很方便的功能&#xff0c;卻因為成本或者其他工業原因莫名其妙地給取消了。 逆向進化1&#xff1a;可拆卸電池-變為不可拆卸電池。 智能手機為了追求輕薄等原因&#xff0c;所以移除了可拆卸電池功能。將電池…

GoLand 相關

goland 下載依賴 go mod tidy&#xff1a;保持依賴整潔 go mod tidy 命令的作用是清理未使用的依賴&#xff0c;并更新 go.mod 以及 go.sum 文件。 go mod tidy 和 go mod vendor 兩個命令是維護項目依賴不可或缺的工具。go mod tidy 確保了項目的 go.mod 文件精簡且準確&…

ubuntu20.04安裝實時內核補丁PREEMPT_RT

參考&#xff1a; Ubuntu 18.04安裝 RT-PREEMPT 實時內核及補丁【過程記錄】_ubuntu18.04 preempt rt linux 5.6.19-CSDN博客 https://github.com/UniversalRobots/Universal_Robots_ROS_Driver/blob/master/ur_robot_driver/doc/real_time.md當前內核&#xff1a;5.15.0-94-ge…