溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

Java Script中入門(mén)知識(shí)點(diǎn)有哪些

發(fā)布時(shí)間:2021-10-15 11:14:58 來(lái)源:億速云 閱讀:108 作者:小新 欄目:web開(kāi)發(fā)

這篇文章將為大家詳細(xì)講解有關(guān)Java Script中入門(mén)知識(shí)點(diǎn)有哪些,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

什么是JavaScript?

JavaScript是一種運(yùn)行在客戶(hù)端的腳本語(yǔ)言


基本輸入輸出語(yǔ)句

功能語(yǔ)句
打印輸出console.log()
彈出輸出框alert
彈出輸入框prompt
文件寫(xiě)入document.write(’’)
  • 小理論:
    console.log可以輸出任何類(lèi)型的數(shù)據(jù),alert只能輸出String類(lèi)型的數(shù)據(jù),且只能輸出第一個(gè)數(shù)據(jù),如果alert輸出的是對(duì)象會(huì)自動(dòng)調(diào)用toString()方法。


變量

聲明變量 var (name)

  • 一些注意事項(xiàng)

    • 一次聲明多個(gè)變量的時(shí)候必須用逗號(hào)進(jìn)行隔開(kāi),而且必須換行,寫(xiě)在同一行的多個(gè)聲明變量會(huì)無(wú)效。

    • 未初始化的變量直接輸出結(jié)果是undfined

    • 變量的命名規(guī)范: 字母數(shù)字下劃線(xiàn)美元符號(hào)(不以數(shù)字開(kāi)頭)

    • 變量初始化中,單引號(hào)和雙引號(hào)沒(méi)有區(qū)別


數(shù)據(jù)類(lèi)型

JavaScipt是一種> 動(dòng)態(tài)/弱類(lèi)型 語(yǔ)言

Num數(shù)字型Boolean布爾型Str字符串型Undefined未知的值Null空

js的變量數(shù)據(jù)類(lèi)型是只有程序在運(yùn)行過(guò)程中,根據(jù)等號(hào)右邊的值來(lái)確定的,也被稱(chēng)為動(dòng)態(tài)數(shù)據(jù)類(lèi)型

常用語(yǔ)句:

IsNAN() //判斷值是否為非數(shù)字
//轉(zhuǎn)義符: \n換行 \t縮進(jìn) \b空格
str.length  //獲取字符串長(zhǎng)度

小理論

  • undefined和數(shù)字相加,結(jié)果是NaN

  • null+1等于1

  • prompt取過(guò)來(lái)的值是字符型.

對(duì)于prompt取值做加法,有以下加法案例:

//demo onevar a,
	b
	;a = parseInt(prompt('請(qǐng)輸入第一個(gè)值'));
	b = parseInt(prompt('請(qǐng)輸入第二個(gè)值'));
	var c = a + b;
	alert (c);
	//demo two
	var a = prompt('請(qǐng)輸入第一個(gè)值');
	var b = prompt('請(qǐng)輸入第二個(gè)值');
	var c = Number(a) + Number(b);
	alert (c);

字符串轉(zhuǎn)換(chrom顏色為黑)

  • 變量.toString()

  • String()強(qiáng)制轉(zhuǎn)換

  • 隱式轉(zhuǎn)換:+拼接

  • 字符串模板拼接 我的年齡是${age}歲 (注意反引號(hào)不要掉了)

數(shù)字型轉(zhuǎn)換(chrom顏色為藍(lán))

  • Parselnt()轉(zhuǎn)換為整數(shù)型

  • parseFloat()轉(zhuǎn)換為浮點(diǎn)型

  • Number()強(qiáng)制轉(zhuǎn)換函數(shù)

  • 隱式轉(zhuǎn)換:- * / 算術(shù)運(yùn)算隱式轉(zhuǎn)換

布爾型轉(zhuǎn)換(chrom顏色為藍(lán))

  • 空、否定會(huì)被轉(zhuǎn)換為false:如 ‘’、 0 、 NaN 、 null 、 undefined
    其余全部為true


運(yùn)算符

==默認(rèn)轉(zhuǎn)換數(shù)字類(lèi)型,會(huì)把字符型轉(zhuǎn)換成數(shù)字型
===全等, 要求數(shù)值和數(shù)據(jù)類(lèi)型都一樣

優(yōu)先級(jí):

  • 括號(hào)

  • 單目 (右結(jié)合右至左)

  • 算數(shù)*/%

  • 位移

  • 關(guān)系

  • 相等

  • 邏輯&^| &&||

  • 賦值

  • 逗號(hào)


選擇語(yǔ)句

  • if沒(méi)什么好說(shuō)的

  • switch注意事項(xiàng):
    case的值判斷是全等運(yùn)算判斷


數(shù)組

  • 創(chuàng)建數(shù)組的方式
    1.利用new創(chuàng)建數(shù)組

var arr = new Array() //注意的是,new A必須大寫(xiě)
var arr = new Array(2); //表示數(shù)據(jù)長(zhǎng)度2
var arr = new Array(2, 3); //表示里面有兩個(gè)元素是2和3

2.利用字面量創(chuàng)建數(shù)組

var arr = [];

3.獲取數(shù)組的長(zhǎng)度

arr.length

也可通過(guò)arr.length = (Number)的方式來(lái)修改數(shù)組長(zhǎng)度

注意點(diǎn):

  • 多余的地址/空地址/未定義數(shù)組元素默認(rèn)值為undefined
    拿C語(yǔ)言舉例,字符數(shù)組默認(rèn)后面都是有一個(gè)\0結(jié)束的,而下標(biāo)越界會(huì)導(dǎo)致程序錯(cuò)誤,JS這樣設(shè)置的好處就是可以不定義數(shù)組長(zhǎng)度,或者預(yù)先給到地址空間。
    4.實(shí)現(xiàn)數(shù)組遷移,從而不需要定義索引/下標(biāo)變量

newArry[new.Arry.length] = arr[i++];

數(shù)組的常用內(nèi)置對(duì)象

1.判斷數(shù)組

// var arr = [];
arr instanceof Array //Instanceof運(yùn)算符判斷是否為數(shù)組
Array.isArray(arr)  //isArray判斷是否為數(shù)組

2.添加數(shù)組元素

arr.push() //在數(shù)組最后添加一個(gè)或多個(gè)數(shù)組元素
arr.unshift() //在數(shù)組最前面添加一個(gè)或多個(gè)數(shù)組元素

實(shí)用:push可以實(shí)現(xiàn)給新的空數(shù)組賦值,且push和unshift都有返回值,為新數(shù)組的length

3.刪除數(shù)組元素

arr.pop()  //刪除數(shù)組中最后一個(gè)元素
arr.shift()  //刪除數(shù)組中第一個(gè)元素

有返回值,為刪除的元素值

4.翻轉(zhuǎn)/逆置數(shù)組

arr.reverse()

5.數(shù)組排序

arr.sort() //對(duì)個(gè)位數(shù)進(jìn)行冒泡排序

理論:為什么說(shuō)是對(duì)個(gè)位數(shù)進(jìn)行冒泡排序,因?yàn)閟ort比較數(shù)組會(huì)先把數(shù)組轉(zhuǎn)換成字符串,所以77會(huì)比8更先,但是如果有了比較函數(shù)(compareFunction)的指定,就能實(shí)現(xiàn)按要求排列

arr.sort解決方案

arr.sort(function(a,b)) {
	return a - b;
	//return b - a

a - b為升序排序,b - a為降序排序

6.查找數(shù)組

arr.indexOf('word');

從前往后查找返回?cái)?shù)組滿(mǎn)足條件第一個(gè)元素的索引號(hào),如果找不到則返回-1

arr.lastIndexOf('word');

從后往前查找返回?cái)?shù)組滿(mǎn)足條件第一個(gè)元素的索引號(hào),如果找不到則返回-1

7.轉(zhuǎn)換成字符串

arr.toString() //數(shù)組轉(zhuǎn)換成字符串
arr.join() //將數(shù)組轉(zhuǎn)換成字符串,且括號(hào)內(nèi)可以寫(xiě)分隔符,表示用什么符號(hào)格式進(jìn)行分隔 arr.join('&')

Arguments 偽數(shù)組 只有在函數(shù)中能夠使用

同樣按照下標(biāo)的方式存儲(chǔ)數(shù)據(jù),可以不定義長(zhǎng)度實(shí)現(xiàn)形參接收


函數(shù)

  • 聲明函數(shù):

  • Function 函數(shù)名 () { }

  • var 變量名 = Function () { } 函數(shù)表達(dá)式(匿名函數(shù))

  • 預(yù)解析

    就是把JS中所有的var和function提到當(dāng)前作用域的最前面

  • 變量預(yù)解析
    提前所有的變量聲明(不提賦值操作)

  • 函數(shù)預(yù)解析
    提前所有的函數(shù)聲明(不調(diào)用函數(shù))
    → 所以要額外注意函數(shù)表達(dá)式和聲明函數(shù)的預(yù)解析

理論:

  • 如果形參多于實(shí)參,按前取;如果有實(shí)參沒(méi)有被傳值,默認(rèn)是undefined

  • Return返回一個(gè)值,但是如果return[ ] 且有多個(gè)表達(dá)式以逗號(hào)隔開(kāi),那返回值會(huì)是整個(gè)[]的 所有 運(yùn)算結(jié)果

  • ?。∪绻瘮?shù)沒(méi)有返回值,那么返回的是undefined !!

  • 在函數(shù)內(nèi)部直接賦值的變量屬于全局變量

  • 函數(shù)的形參是局部變量

  • 塊級(jí)作用域: {} (es6新增,其他版本在括號(hào)里面定
    義的變量也能在外面調(diào)用

  • 作用域鏈:多個(gè)函數(shù)嵌套的時(shí)候會(huì)形成作用域鏈,子函數(shù)能訪(fǎng)問(wèn)父函數(shù)的塊作用域


對(duì)象

  • 什么是對(duì)象?
    對(duì)象是一組無(wú)序的相關(guān)屬性和方法的集合(字符串,數(shù)值,數(shù)組,函數(shù))
    在其他語(yǔ)言中,類(lèi)似 >結(jié)構(gòu)體 >字典

創(chuàng)建自定義對(duì)象和對(duì)象屬性、對(duì)象方法:

  1. 字面量創(chuàng)建

var obj = {
	name:'姓名',
	age : 999,
	//*方法*冒號(hào)后跟一個(gè)*匿名函數(shù)*
	printf:function() {
		console.log('hello world');
	}
	}

記憶方法↓:

  • 直接給對(duì)象名、屬性冒號(hào)跟值+語(yǔ)句結(jié)束逗號(hào)

  • 方法用冒號(hào)

  • 取值:對(duì)象名.屬性名 or 對(duì)象名[‘屬性名’]

  • 調(diào)用對(duì)象方法: 對(duì)象名.方法名();

  1. new object

var obj = new Object();
obj.name = '李昂';
obj.age = 999;
obj.printf:function(){
	console.log('hello world');
	}

記憶方法↓:

  • var對(duì)象名 = new Object (); 不加分號(hào)

  • 對(duì)象名.屬性 = 取值 + 分號(hào)

  • 方法用冒號(hào)

  • 取值:對(duì)象名.屬性名 or 對(duì)象名[‘屬性名’]

  • 調(diào)用對(duì)象方法: 對(duì)象名.方法名();

3.構(gòu)造函數(shù)

function Obj (Uname, Uage) {
this.name = Uname;
this.age = Uage;
this.printf = function(infoms){
	console.log(infoms);
	}
	}

記憶方法↓:

  • 類(lèi)似函數(shù)聲明,但是構(gòu)造函數(shù)函數(shù)名首字母必須大寫(xiě),this.屬性

  • 方法用等號(hào)

  • 構(gòu)造函數(shù)必須得有變量傳值,構(gòu)造函數(shù)的方法也必須有變量傳值

  • 調(diào)用構(gòu)造函數(shù) var 變量 = new 構(gòu)造函數(shù)名(傳遞的值)

var myobj = new Obj('李昂', '999');//可以理解為創(chuàng)建了一個(gè)變量指定了構(gòu)造函數(shù)
console.log(myobj.name);
console.log(myobj['age']);
obj.printf('hello world');

new的執(zhí)行過(guò)程

  • new構(gòu)造函數(shù)會(huì)在內(nèi)存中創(chuàng)建一個(gè)空的對(duì)象

  • this就會(huì)指向剛才創(chuàng)建的對(duì)象

  • 接著依次執(zhí)行屬性、方法,并返回

新循環(huán)遍歷

For (變量 in 對(duì)象){
}
這里的變量是屬性值做遍歷
屬性的的輸出:consolo.log(對(duì)象[變量]);
程序員在for in 的變量喜歡寫(xiě)Key或者i

一些可用內(nèi)置對(duì)象:

Math.PI //求圓周率
Math.max()//返回最大數(shù)值(如果無(wú)值返回負(fù)無(wú)窮大)
Math.abc ()//取絕對(duì)值
Math.floor()//向下取整
Math.ceil()//向上取整
Math.round()//四舍五入(五特殊 往大了?。?/pre>
  • 隨機(jī)數(shù)

Math.random() ;
  • 返回一個(gè)隨機(jī)浮點(diǎn)數(shù)【0,1)括號(hào)里不跟參數(shù)
    ↓ 擴(kuò)展:得到自定義最大值和最小值中間的隨機(jī)函數(shù)

Function getRandomInt(min, max) {
	min = Math.ceil(min); //規(guī)范值語(yǔ)句 可省
	max = Math.floor(max); //規(guī)范值語(yǔ)句 可省
	return = Math.floor(Math.random() * (max - min + 1) + min);
  • new Date()調(diào)用日期對(duì)象 不跟參數(shù)返回系統(tǒng)時(shí)間

  • (‘2021-10-10 8:00:00’)字符串輸出

  • (2021, 10, 10)數(shù)字輸出 月份從0開(kāi)始11結(jié)束 故而要在月份的基礎(chǔ)上+1

  • 變量.getDay()獲取當(dāng)前星期,星期日從0開(kāi)始 到星期六6結(jié)束 獲取到的值是一個(gè)數(shù)字
    ↓規(guī)范獲取當(dāng)前時(shí)間 demo

var date1 = new Date;
var year = date1.getFunllYear();
var month = date1.getMonth();
var dates = date1.getDate();
var day = date1.getDay();
var arr = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
alert('今天的日期是:' + year + '年' + (month+1) + '月' + dates + '日' + arr[day]);

==值得注意的是,必須使用變量調(diào)用Date這個(gè)構(gòu)造函數(shù)

基本包裝類(lèi)型:

  • 就是把簡(jiǎn)單數(shù)據(jù)類(lèi)型包裝成復(fù)雜數(shù)據(jù)類(lèi)型,這樣基本數(shù)據(jù)類(lèi)型就有了屬性和方法,那么一般來(lái)說(shuō)在瀏覽器里面JS引擎會(huì)自動(dòng)幫我們把簡(jiǎn)單數(shù)據(jù)類(lèi)型包裝成復(fù)雜數(shù)據(jù)類(lèi)型

var str = 'lion';
 console.log(str.length);
 //JS如何給我們的數(shù)據(jù)包裝
 var temp = new String('lion');//定義一個(gè)臨時(shí)構(gòu)造函數(shù)包含初始化的字符串
 str = temp; //把構(gòu)造函數(shù)賦給值類(lèi)型
 temp = null; //最后舍棄臨時(shí)變量
  • 一些可用的字符串內(nèi)置對(duì)象

  1. 查找字符串

str.indexOf('要查找的字符串',[起始位置]);
//demo:
var str = '我的名字是什么,名字不重要';
console.log(str.indexOf('名字', 3));
  1. 查找指定字符

str.charAt(0); //返回指定下標(biāo)的字符
str.charCodeAt(0); //返回指定下標(biāo)的ASCII碼
  1. 拼接字符串

str.concat('word') //拼接字符串(開(kāi)發(fā)中隱性拼接居多)
  1. 查找某一連續(xù)字符

str.substr('抓起始位置', '抓幾個(gè)字符'); //查找某一連續(xù)字符
  1. 替換字符

str.replace('被替換的字符', '替換為字符') //如果字符串中有重復(fù)的字符,只會(huì)替換第一個(gè)
  1. 字符串轉(zhuǎn)換成數(shù)組

split('分隔符') //把字符串轉(zhuǎn)換為數(shù)組(被轉(zhuǎn)換字符串中必須要寫(xiě)分隔符,而且要與split的分隔符統(tǒng)一!)

一些傳參和類(lèi)型的–
理論深入:

  • 簡(jiǎn)單類(lèi)型又被稱(chēng)為基本類(lèi)型或者值類(lèi)型 因?yàn)榇鎯?chǔ)是值本身

  • 系統(tǒng)自動(dòng)分配釋放存放函數(shù)的值,局部變量的值,被稱(chēng)為棧

  • 復(fù)雜類(lèi)型又叫引用類(lèi)型 因?yàn)榇鎯?chǔ)的是地址 調(diào)用的時(shí)候需要專(zhuān)門(mén)引用

  • 現(xiàn)在棧里面存放16進(jìn)制地址碼,然后指向堆里面的數(shù)據(jù)(對(duì)象實(shí)例),被稱(chēng)為堆復(fù)雜類(lèi)型傳參,如果不是傳值,傳的指針,也就是傳地址

  • 特殊: Null返回的是一個(gè)空的對(duì)象(因?yàn)槌绦虻脑O(shè)計(jì)缺陷)

  • 可以定義變量為Null,稍后再給值

關(guān)于“Java Script中入門(mén)知識(shí)點(diǎn)有哪些”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI