您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關Java Script中入門知識點有哪些,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
什么是JavaScript?
JavaScript是一種運行在客戶端的腳本語言
功能 | 語句 |
---|---|
打印輸出 | console.log() |
彈出輸出框 | alert |
彈出輸入框 | prompt |
文件寫入 | document.write(’’) |
小理論:
console.log可以輸出任何類型的數據,alert只能輸出String類型的數據,且只能輸出第一個數據,如果alert輸出的是對象會自動調用toString()方法。
聲明變量 var (name)
一些注意事項
一次聲明多個變量的時候必須用逗號進行隔開,而且必須換行,寫在同一行的多個聲明變量會無效。
未初始化的變量直接輸出結果是undfined
變量的命名規范: 字母數字下劃線美元符號(不以數字開頭)
變量初始化中,單引號和雙引號沒有區別
JavaScipt是一種> 動態/弱類型 語言
Num數字型 | Boolean布爾型 | Str字符串型 | Undefined未知的值 | Null空 |
---|
js的變量數據類型是只有程序在運行過程中,根據等號右邊的值來確定的,也被稱為動態數據類型
常用語句:
IsNAN() //判斷值是否為非數字 //轉義符: \n換行 \t縮進 \b空格 str.length //獲取字符串長度
小理論
undefined和數字相加,結果是NaN
null+1等于1
prompt取過來的值是字符型.
對于prompt取值做加法,有以下加法案例:
//demo onevar a, b ;a = parseInt(prompt('請輸入第一個值')); b = parseInt(prompt('請輸入第二個值')); var c = a + b; alert (c); //demo two var a = prompt('請輸入第一個值'); var b = prompt('請輸入第二個值'); var c = Number(a) + Number(b); alert (c);
字符串轉換(chrom顏色為黑)
變量.toString()
String()強制轉換
隱式轉換:+拼接
字符串模板拼接 我的年齡是${age}歲
(注意反引號不要掉了)
數字型轉換(chrom顏色為藍)
Parselnt()轉換為整數型
parseFloat()轉換為浮點型
Number()強制轉換函數
隱式轉換:- * / 算術運算隱式轉換
布爾型轉換(chrom顏色為藍)
空、否定會被轉換為false:如 ‘’、 0 、 NaN 、 null 、 undefined
其余全部為true
優先級:
括號
單目 (右結合右至左)
算數*/%
位移
關系
相等
邏輯&^| &&||
賦值
逗號
if沒什么好說的
switch注意事項:
case的值判斷是全等運算判斷
創建數組的方式
1.利用new創建數組
var arr = new Array() //注意的是,new A必須大寫 var arr = new Array(2); //表示數據長度2 var arr = new Array(2, 3); //表示里面有兩個元素是2和3
2.利用字面量創建數組
var arr = [];
3.獲取數組的長度
arr.length
也可通過arr.length = (Number)的方式來修改數組長度
注意點:
多余的地址/空地址/未定義數組元素默認值為undefined
拿C語言舉例,字符數組默認后面都是有一個\0結束的,而下標越界會導致程序錯誤,JS這樣設置的好處就是可以不定義數組長度,或者預先給到地址空間。
4.實現數組遷移,從而不需要定義索引/下標變量
newArry[new.Arry.length] = arr[i++];
1.判斷數組
// var arr = []; arr instanceof Array //Instanceof運算符判斷是否為數組 Array.isArray(arr) //isArray判斷是否為數組
2.添加數組元素
arr.push() //在數組最后添加一個或多個數組元素 arr.unshift() //在數組最前面添加一個或多個數組元素
實用:push可以實現給新的空數組賦值,且push和unshift都有返回值,為新數組的length
3.刪除數組元素
arr.pop() //刪除數組中最后一個元素 arr.shift() //刪除數組中第一個元素
有返回值,為刪除的元素值
4.翻轉/逆置數組
arr.reverse()
5.數組排序
arr.sort() //對個位數進行冒泡排序
理論:為什么說是對個位數進行冒泡排序,因為sort比較數組會先把數組轉換成字符串,所以77會比8更先,但是如果有了比較函數(compareFunction)的指定,就能實現按要求排列
arr.sort解決方案
arr.sort(function(a,b)) { return a - b; //return b - a
a - b為升序排序,b - a為降序排序
6.查找數組
arr.indexOf('word');
從前往后查找返回數組滿足條件第一個元素的索引號,如果找不到則返回-1
arr.lastIndexOf('word');
從后往前查找返回數組滿足條件第一個元素的索引號,如果找不到則返回-1
7.轉換成字符串
arr.toString() //數組轉換成字符串 arr.join() //將數組轉換成字符串,且括號內可以寫分隔符,表示用什么符號格式進行分隔 arr.join('&')
Arguments 偽數組 只有在函數中能夠使用
同樣按照下標的方式存儲數據,可以不定義長度實現形參接收
聲明函數:
Function 函數名 () { }
var 變量名 = Function () { }
函數表達式(匿名函數)
預解析:
就是把JS中所有的var和function提到當前作用域的最前面
變量預解析
提前所有的變量聲明(不提賦值操作)
函數預解析
提前所有的函數聲明(不調用函數)
→ 所以要額外注意函數表達式和聲明函數的預解析
如果形參多于實參,按前取;如果有實參沒有被傳值,默認是undefined
Return返回一個值,但是如果return[ ] 且有多個表達式以逗號隔開,那返回值會是整個[]的 所有 運算結果
!!如果函數沒有返回值,那么返回的是undefined !!
在函數內部直接賦值的變量屬于全局變量
函數的形參是局部變量
塊級作用域: {} (es6新增,其他版本在括號里面定
義的變量也能在外面調用)
作用域鏈:多個函數嵌套的時候會形成作用域鏈,子函數能訪問父函數的塊作用域
什么是對象?
對象是一組無序的相關屬性和方法的集合(字符串,數值,數組,函數)
在其他語言中,類似 >結構體 >字典
創建自定義對象和對象屬性、對象方法:
字面量創建
var obj = { name:'姓名', age : 999, //*方法*冒號后跟一個*匿名函數* printf:function() { console.log('hello world'); } }
記憶方法↓:
直接給對象名、屬性冒號跟值+語句結束逗號
方法用冒號
取值:對象名.屬性名 or 對象名[‘屬性名’]
調用對象方法: 對象名.方法名();
new object
var obj = new Object(); obj.name = '李昂'; obj.age = 999; obj.printf:function(){ console.log('hello world'); }
記憶方法↓:
var對象名 = new Object (); 不加分號
對象名.屬性 = 取值 + 分號
方法用冒號
取值:對象名.屬性名 or 對象名[‘屬性名’]
調用對象方法: 對象名.方法名();
3.構造函數
function Obj (Uname, Uage) { this.name = Uname; this.age = Uage; this.printf = function(infoms){ console.log(infoms); } }
記憶方法↓:
類似函數聲明,但是構造函數函數名首字母必須大寫,this.屬性
方法用等號
構造函數必須得有變量傳值,構造函數的方法也必須有變量傳值
調用構造函數 var 變量 = new 構造函數名(傳遞的值)
var myobj = new Obj('李昂', '999');//可以理解為創建了一個變量指定了構造函數 console.log(myobj.name); console.log(myobj['age']); obj.printf('hello world');
new的執行過程
new構造函數會在內存中創建一個空的對象
this就會指向剛才創建的對象
接著依次執行屬性、方法,并返回
新循環遍歷
For (變量 in 對象){
}
這里的變量是屬性值做遍歷
屬性的值的輸出:consolo.log(對象[變量]);
程序員在for in 的變量喜歡寫Key或者i
一些可用內置對象:
Math.PI //求圓周率 Math.max()//返回最大數值(如果無值返回負無窮大) Math.abc ()//取絕對值 Math.floor()//向下取整 Math.ceil()//向上取整 Math.round()//四舍五入(五特殊 往大了取)
隨機數
Math.random() ;
返回一個隨機浮點數【0,1)括號里不跟參數
↓ 擴展:得到自定義最大值和最小值中間的隨機函數
Function getRandomInt(min, max) { min = Math.ceil(min); //規范值語句 可省 max = Math.floor(max); //規范值語句 可省 return = Math.floor(Math.random() * (max - min + 1) + min);
new Date()調用日期對象 不跟參數返回系統時間
(‘2021-10-10 8:00:00’)字符串輸出
(2021, 10, 10)數字輸出 月份從0開始11結束 故而要在月份的基礎上+1
變量.getDay()獲取當前星期,星期日從0開始 到星期六6結束 獲取到的值是一個數字
↓規范獲取當前時間 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]);
==值得注意的是,必須使用變量調用Date這個構造函數
就是把簡單數據類型包裝成復雜數據類型,這樣基本數據類型就有了屬性和方法,那么一般來說在瀏覽器里面JS引擎會自動幫我們把簡單數據類型包裝成復雜數據類型
var str = 'lion'; console.log(str.length); //JS如何給我們的數據包裝 var temp = new String('lion');//定義一個臨時構造函數包含初始化的字符串 str = temp; //把構造函數賦給值類型 temp = null; //最后舍棄臨時變量
一些可用的字符串內置對象
查找字符串
str.indexOf('要查找的字符串',[起始位置]); //demo: var str = '我的名字是什么,名字不重要'; console.log(str.indexOf('名字', 3));
查找指定字符
str.charAt(0); //返回指定下標的字符 str.charCodeAt(0); //返回指定下標的ASCII碼
拼接字符串
str.concat('word') //拼接字符串(開發中隱性拼接居多)
查找某一連續字符
str.substr('抓起始位置', '抓幾個字符'); //查找某一連續字符
替換字符
str.replace('被替換的字符', '替換為字符') //如果字符串中有重復的字符,只會替換第一個
字符串轉換成數組
split('分隔符') //把字符串轉換為數組(被轉換字符串中必須要寫分隔符,而且要與split的分隔符統一!)
一些傳參和類型的–
理論深入:
簡單類型又被稱為基本類型或者值類型 因為存儲是值本身
系統自動分配釋放存放函數的值,局部變量的值,被稱為棧
復雜類型又叫引用類型 因為存儲的是地址 調用的時候需要專門引用
現在棧里面存放16進制地址碼,然后指向堆里面的數據(對象實例),被稱為堆復雜類型傳參,如果不是傳值,傳的指針,也就是傳地址
特殊: Null返回的是一個空的對象(因為程序的設計缺陷)
可以定義變量為Null,稍后再給值
關于“Java Script中入門知識點有哪些”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。