目錄
- JavaScript函式
- 1.函式的語法格式
- 2.無參函式
- 3.有參函式
- 4.關鍵字arguments
- 5.函式回傳值 關鍵字return
- 6.匿名函式(沒有函式名)
- 7.箭頭函式
- 8.函式的全域變數與區域變數
- 9.閉包函式
- 10.js內置物件和方法
- Date物件
- JSON序列化物件
- RegExp正則物件
JavaScript函式
1.函式的語法格式
function 函式名(形參1,形參2,形參3....){
// 函式注釋,解釋說明該函式用來做什么
函式體代碼
return 回傳值
}
2.無參函式
function func1(){
console.log('hello world')
}
func1() // 呼叫 加括號呼叫與python中一樣
3.有參函式
function func2(a, b){
console.log(a, b)
}
func2(1,2) //呼叫函式(傳參)
func2(1,2,3,4,5,6) // 多了沒關系 只要對應得資料
1 2
func2(1) // 少了也沒關系
1 undefined
4.關鍵字arguments
arguments引數,可以獲取傳入得所有資料,也支持return和匿名函式
1.能夠獲取函式接受得索引引數
function func2(a,b){
console.log(arguments) // 能夠獲取函式接受得索引引數
console.log(a,b)
}

2.關鍵字arguments(限制函式不能多也不能少)
function func2(a, b){
if(arguments.length<2){
console.log('傳少了')
}else if (arguments.length>2){
console.log('傳多了')
}else{
console.log('正常執行')
}
}

5.函式回傳值 關鍵字return
回傳元素的個數
function index(){
return 666, 777, 888
}
res = index(); // 一次只能回傳一個值

把回傳值做成陣列形式回傳(可實作多元素回傳)
function index(){
return [666, 777, 888]
}
res = index();

js不支持解壓賦值
6.匿名函式(沒有函式名)
function(){
console.log('所有只有好好學習)
}
var res = function(){
console.loh('嗯,好好學習把')
}

7.箭頭函式
箭頭左邊的是形參 右邊是回傳值
var func1 = v => v;
上面等價于下面這句
var func1 = function(v){
return v
}
var func2 = (arg1,arg2) => arg1+arg2
等價于
var func2 = function(arg1,arg2){
return arg1+arg2
}

8.函式的全域變數與區域變數
1.區域變數:
在JavaScript函式內部宣告的變數(使用var)是區域變數,索引只能在函式內部訪問它(該變數的作用域是函式內部),只要函式運行完畢,本地變數就會被洗掉
2.全域變數:
在函式外宣告的變數是全域變數,網頁上的所有腳本和函式都能訪問它
3.變數生存周期
JavaScript變數的生命周期從它們被宣告的時候開始
區域變數會在函式運行以后被洗掉
全域變數會在頁面關閉后被洗掉
4.作用域
首先在函式內部查找變數,找不到則到外部函式查找,逐步找到最外層,與python作用域關系查找一模一樣
函式全域區域案例:
var city = "BeiJing";
function f() {
var city = "ShangHai";
function inner(){
var city = "ShenZhen";
console.log(city);
}
inner();
}
f();
shenZhen
var city = "BeiJing";
function Bar() {
console.log(city);
}
function f() {
var city = "ShangHai";
return Bar;
}
var ret = f();
ret();
Beijing
9.閉包函式
var city = "BeiJing";
function f(){
var city = "ShangHai";
function inner(){
console.log(city);
}
return inner;
}
var ret = f();
ret();
ShangHai
10.js內置物件和方法
JavaScript中的所有事物都是物件:字串、數字、陣列、日期,等等,在JavaScript中,物件是擁有屬性和方法的資料,
我們在學習基本資料型別的時候已經帶大家了解了,JavaScript中的Number物件、String物件、Array物件等,
注意var s1 = "abc"和var s2 = new String("abc")的區別:typeof s1 --> string而 typeof s2 --> Object

類似于python中的內置函式或者內置模塊
固定語法
var 變數名 = new 內置物件名();
1.自定義物件
JavaScript的物件(Object)本質上是鍵值對的集合(Hash結構),但是只能用字串作為鍵,
可以看成是我們python中的字典 但是js中的自定義物件要比python里面的字典操作起來更加方便
2.創建自定義物件{}
var d1 = {'name' : 'jason','age' : 18}
3.第一種方式 創建自定義物件
var d = {'name':'jason','age':18}
typeof d
'object'
d['name']
'jason'
d.name
'jason'
d.age
18
4.支持for回圈
ar d = {'name':'jason','age':18}
for(let i in d){
console.log(i,d[i])
}
VM432:2 name jason
VM432:2 age 18

5.使用new()自定義物件的方式
第二種創建自定義物件的方式 需要使用關鍵字 new
var d2 = new Object()
d2.name = 'jason'
d2
{name: 'jason'}
d2['age'] = 18
d2
{name: 'jason', age: 18}
Date物件
let d3 = new Date()
Thu Aug 25 2022 20:06:32 GMT+0800 (中國標準時間)
格式化時間
d3.toLocaleString()
'2022/8/25 20:06:32'
也支持自己手動輸入時間(自定制)
let d4 = new Date('2022/08/25 12:12:45')
d4
Thu Aug 25 2022 12:12:45 GMT+0800 (中國標準時間)

時間物件方法
var d = new Date();
//getDate() 獲取日
//getDay () 獲取星期
//getMonth () 獲取月(0-11)
//getFullYear () 獲取完整年份
//getYear () 獲取年
//getHours () 獲取小時
//getMinutes () 獲取分鐘
//getSeconds () 獲取秒
//getMilliseconds () 獲取毫秒
//getTime () 回傳累計毫秒數(從1970/1/1午夜)
JSON序列化物件
1.python與js序列化與反序列化
在python中序列化反序列化
dumps 序列化
loads 反序列化
在js中也有序列化與反序列化
JSON.stringify()
JSON.parse()
2.js序列化使用
let d7 = {'name':'jason','age':18}
序列化
let res = JSON.stringify(d7)
res
'{"name":"jason","age":18}'
反序列化
JSON.parse(res)
{name: 'jason', age: 18}
3.javascript序列化基于網路發送給python
需求:如果當前js中有一個布林值true需要基于網路發送給python程式并且讓python轉換成布林值 如何操作
1.在js中使用JSON.stringify()序列化成json格式字串
2.基于網路發送給python程式(自動編碼)
3.python接收 解碼并反序列化
RegExp正則物件
在python中如果需要使用正則 需要借助re模塊
在js中需要我們取創建正則物件
1.new代表創建物件
let regl = new RegExp('^[a-zA-Z][a-zA-z0-9]{5,11}')
2.推薦使用
let reg2 = /^[a-zA-Z][a-zA-Z0-9]{5,11}/
匹配內容
reg1.test('woshidashuaibi')
res2.test('woshidashuaibi')
3.獲取字串里面所有的字母s
let sss = 'nish asoswo shi'
sss.match(/s/) // 拿到一個就停止了
4.解決拿到一個就停止的問題,使用全域匹配/g
sss.match(/s/g) // 全域模式
(4) ['s', 's', 's', 's']
全域匹配模式:正則運算式的最后不加g則表示匹配成功就結束 加g表示全域匹配,全域匹配會有一個lastindex屬性
let reg3 = /^[a-zA-Z][a-zA-Z0-9]{5,11}/g
reg3.test('egondsb') // 全域模式有一個lastindex屬性
true
reg3.test('egondsb')
false
reg3.test('egondsb')
true
reg3.test('egondsb')
false
如果在后面加了一個/g的時候,每一次匹配結束后,它都會等在那里,如果再次校驗的時候,它會基于當前頁面進行再次向后移動,然后就會報false,報完false以后它會重置走到最開始位置
reg3.test('egondsb')
true
reg3.lastIndex
7
reg3.test('egondsb')
false
reg3.lastIndex
0
let reg4 = /^[a-zA-Z][a-zA-Z0-9]{5,11}/
reg4.test()
reg4.test() //什么都不傳 默認的是undefined
true
reg4.rest()
true
校驗時不傳引數默認傳的是undefined
reg4.test(undefined)
true
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/502740.html
標籤:JavaScript
上一篇:正則使用場景
