avaScript ECMAScript語法思維導圖見文章底部
為了存儲和復用一個數據,方便修改
當聲明一個變量的時候 var a=10 ,會在內存中開辟以一個空間 存放變量名和變量值 ,會將變量和值存放到window對象中 a:10
全局作用域中的變量 可以在該腳本文件中的任何地方訪問到
局部作用域中的變量 局部變量只能在該函數中訪問到
在局部作用域中(函數中)聲明變量 如果未加關鍵字 var || let || const 這個變量就會變為隱式全局變量
function a(){
num=1;
}=>
var num;
function a(){
num=1;
}
/*只有num1 是局部變量 , num2 和 num3 是隱式全局變量*/
function a(){
var num1=num2=num3=100;
}=>
var num2;
var num3;
function a(){
var num1=100;
num2=100;
num3=100;
}
聲明關鍵詞 var let const 變量名區分大小寫
命名規范
一般以字母、$、下劃線、數字組成(不能以數字開頭) 不能使用系統關鍵詞和保留字 一般遵循駝峰命名法(第一個單詞首字面小寫后面單詞首字母大寫) 變量名需得有意義
變量預解析只會將變量的聲明提升到該作用域的最前面
console.log(a) // undefined
var a=10;=>
var a
console.log(a) // undefined
a=10
變量預解析只會將變量的聲明提升到該作用域的最前面
b()
function b(){
}=>
function b(){
}
b()
直接在瀏覽器中Sources添加斷點 或者在編輯器中在語句之后添加 debugger
計算機里面有很多數據,JS為了方便調試與使用,提供了一些對應的輔助方法,將它們做了歸類,就是數據類型。
1.1. 整數=> 正數 負數 1.2. 小數 1.3. NaN Not a Number=> 不是一個數字 判斷一個數字是否是非數字isNaN(x) 返回布爾值 true是一個非數字,false不是一個非數字
isNaN(undefined) // true
isNaN(null) // false
NaN不等于任何值,包括它自己
Infinity // 無窮大
-Infinity // 無窮小
Number.MAX_VALUE /*最大值*/
Number.MIN_VALUE /*最小值*/
+:加
-:減 *:乘 /:除 %:求模 任何數除以0為無窮大 任何數-*/%字符串為NaN (除了+)
復合運算符
+=<a+=1=> a=a+1> -=<a-=1=> a=a-1> "=" <a=1=> a=a*1> (乘等于) /=<a/=1=> a=a/1> %=<a%=1=> a=a%1>=====兩個等于和三個等于的區別 兩個等于只對比值 三個等于對比值和數據類型
自增自減運算符 a++ ++a a-- --a
2.1 字符串的長度str.length 2.2 字符串加號運算 會將數據與數據拼接字符串 + 任何數據類型=拼接之后的新的字符串
true=> 1 false=> 0
用布爾值來判斷條件真假
未定義
空
null 表示一個值被定義了,定義為null undefined 表示一個值聲明了 但是未定義(未賦值) 所以設置一個值為null是合理的 設置一個值為undefined是不合理的 null==undefined // true null===undefined // false 說明 null 和 undefined 在轉boolean 的時候都為 0 值相同 所以==為true ,數據類型不一樣===為false
new
new Array()
new Array(初始長度)
new Array( 1 , 2 , 3 )
字面量
[ ]
[ 1 , 2 , 3 ]
元素: 數組中的值就是元素 下標(索引): 下標從0開始 長度: length 數組的長度 從1開始
正敘遍歷
for(let i=0; i < arr.length; i++){
/*代碼塊*/
}
倒敘遍歷
for(let i=arr.length; i > 0; i--){
/*代碼塊*/
}
棧操作 先進后出
arr.unshift() /*從頭部放入*/
arr.shift() /*從頭部取出*/
arr.push(); /*從尾部放入*/
arr.pop(); /*從尾部取出*/
隊列操作 先進先出
arr.unshift() /*從頭部放入*/
arr.pop(); /*從尾部取出*/
arr.push(); /*從尾部放入*/
arr.shift() /*從頭部取出*/
聲明式創建函數
function fn (){
//代碼塊
}
匿名方式創建函數
let fn=function(){
//代碼塊
}
函數對象
let fn=new Function("形參","形參","代碼塊") /*前面的都是參數,最后面的參數是代碼塊*/
函數中 return 將數據給調用者 函數中遇到 return 直接跳出函數 后面代碼不執行 函數默認 return undefined
只有聲明式的函數和變量才會預解析 先調用 -> 后聲明 在js執行的時候 瀏覽器會執行 預解析的操作
預解析會把所有的 聲明式 創建的函數(包括變量) 提升到當前作用域的最頂端
函數內部的特殊屬性 用來保存實參列表 arguments 是一個 偽數組=> 不是數組 但是具有數組的特性(下標索引、長度、可以進行循環遍歷) 可以模擬函數重載=> 同一個函數,因為傳遞的實參數量不同,可以執行不同的操作
/*工廠函數*/
function createStr(name,age){
let obj=new Object()
obj.name=name
obj.age=age
obj.sayHi=function(){
console.log(this.obj)
}
return obj
}
let obj1=createStr("藍海",11)
/*構造函數*/
function StuInFo(name,age){
this.name=name
this.age=age
this.sayHi=function(){
console.log(this.obj)
}
}
let obj2=new StuInFo("藍海",11)
構造函數相對于自定義類(class) 1.變量名一般用名詞,首字母大寫 2.構造函數中 不需要我們去創建對象、返回對象 3.構造函數一般 被 new 關鍵詞調用
new 關鍵字 做的四件事
創建空對象 將空對象 傳遞給 構造函數 里面的 this 調用構造函數 返回對象
聲明的時候直接調用執行
(function("形參列表"){
/*代碼塊*/
})("實參列表")
new
let obj=new Object()
||
let obj=new Object({
name : "藍海",
age : 11
})
字面量
let obj={ }
||
let obj={
name : "藍海",
age : 11
}
對象中的this就是這個對象 可以通過this.屬性名 在對象的方法中訪問對象里的其他屬性或方法
typeof檢查簡單數據類型[值類型] 返回的是 字符串類型的數據類型
typeof(123)=> "number"
/*注意點*/
typeof(typeof(123))=> "string"
typeof(null)=> "object"
typeof(Infinity)=> "number"
typeof(NaN)=> "number"
typeof(new Date())=> "object"=> /*typeof檢查其他new出來的對象 都返回 object*/
/*typeof() 復雜數據類型object、array 和 null 都返回 object
typeof(function)=> function // 函數除外
*/
instanceof檢查復雜數據類型[引用類型] 返回boolean值
數據名 instanceof 數據類型 /*[Function||Object||Array]*/
返回 false 或 true
只能檢查復雜數據類型 簡單數據類型都返回false
typeof用來檢測簡單數據類型 返回值是一個字符串的數據類型 instanceof用來檢測復雜數據類型 返回的是boolean值 如果用來檢測簡單數據類型都會返回false
str.tostring() 默認模式把變量轉換為字符串 || 基模式 String(str) 把特殊值轉換為字符串 String(undefined)=> “undefined” 加號拼接字符串
parseFloat(str) 把字符串轉換為浮點數(小數) parseInt(str) 把字符串轉換為整數
{Number(str) 任何數據轉換為整數
如果字符串截去開頭和結尾的空白字符后, 不是純數字字符串,那么最終返回NaN。 如果字符串中只包含了數字,(包括前面帶正號和負號), 則將其轉換為十進制數值,即"1"->1,”011“->11 如果字符串是空的""則返回0 如果字符串包含除了上面的格式之外的字符,則將其轉換為NaN
boolean true轉換為1 false轉換為0
null 返回 0
undefined 返回 NaN
}
Boolean()
將布爾字符串轉成布爾值 除了 0、false 、undefiend、NaN、null 轉換為false 其他都為true
console.log("轉義符的應用\"嗯") ->[轉義符的應用“嗯] 常用
戳一下 之前總結的常用內置對象博客
一些很簡單條件判斷這里就不說了哈
條件 ? true : false
/*相對于 if (a===1) 用來做全等判斷*/
break /*每個case里面的代碼斷都要寫 break 否則會穿透*/
/*合理使用switch穿透 <當多個case要執行的代碼需求一樣的時候>*/
default /*如果case都不匹配的情況下 會執行 default 里面的代碼*/
&& 與 一假則假 || 或 一真則真 ! 非 取反
for 循環體上面的 i 變量的作用域是全局作用域 如果在函數中使用就是局部作用域 一般建議使用let 關鍵詞來聲明 i
for (let i=1;i < 10; i++){
/*代碼塊*/
}
/*拆解為*/
let i=1;
for(;i<10;){
/*代碼塊*/
i++;
}
先執行do里面的代碼塊 再條件判斷
do{
/*代碼塊*/
}while(boolean)
先條件判斷 再執行代碼塊
while(boolean){
/*代碼塊*/
}
do-while 不管條件是否成立 都會執行一次do里面的代碼塊 然后再進行條件判斷 while 先進行條件判斷 再執行代碼塊
遍歷對象
for(let "屬性名" in "對象"){
/*訪問對象中的屬性或方法*/ /*這里的屬性名已經是string類型 所以無需再加引號*/
obj[name]=> /*對象[屬性名]*/
}
break 跳出整個循環 后面的循環不再執行 continue 跳出本次循環 繼續執行后面的循環
若有感興趣的小伙伴,需要JavaScript ECMAScript語法思維導圖原圖的,關注我,私信回復獲?。?strong>ECMAScript語法思維導圖
作者:藍海00
鏈接:https://www.jianshu.com/p/5a5fb2b78d13
者:楊朝清
近日,針對網友“大理洱海步道電動車租賃年齡限制60歲太低、希望放寬”的建議,云南大理市洱海管理局回應稱,將認真調研此問題,配備由專職工作人員駕駛的觀光車、酒吧車等。
應當說,涉事企業限制騎行年齡,是基于風險防范。一方面,出于騎行安全的考慮,國內大多數城市(包含大理市)在城市標準道路上行駛、運營的共享電動車高齡限制為65周歲;另一方面,由于該步道游客行人多、路況復雜,且部分路段彎道較多、多數路段臨靠湖邊不具備安裝護欄條件,對騎行用戶的車輛操控反應、身體素質要求更高,“騎行限制60周歲以下”隱伏著良苦用心。
但一項為游客著想的舉措,為何會遭遇批評質疑?風險防范沒有原罪,卻也要把握好尺度。伴隨著生活品質的優化、醫療衛生的改善以及全民健康意識的提升,不少人即使年齡過了60周歲被貼上了“老年人”的身份標簽,也依然有著較好的身體素質。
早在2020年10月,公安部門就放寬小型汽車駕駛證申請年齡,取消70周歲年齡上限。對70周歲以上人員考領駕駛證的,增加記憶力、判斷力、反應力等能力測試,保證身體條件符合安全駕駛要求?!膀T行限制60周歲以下”雖然初衷良善,但方法僵化、在操作過程中不夠人性化,最終導致效果不盡如人意。
“騎行限制60周歲以下”不僅讓游客的利益訴求沒有得到滿足,也讓其權利與尊嚴受到了損害。害怕承擔責任、擔心攤上事兒,讓一些地方戴上了“有色眼鏡”,對老人群體另眼相看。
打破年齡歧視,關鍵在于減少商家的后顧之憂,通過專門的責任保險實現商家、消費者和保險公司的良性互動,實現三方風險共防、責任共擔,以降低商家的壓力與風險。讓商家輕裝上陣,他們才會更有底氣和勇氣來接納老人群體。在做好風險防范的同時,商家也要為老人群體提供更加差異化、精準化、個性化的服務,贏得他們的青睞。
在老齡化趨勢之下,“銀發經濟”成為一座市場富礦。只有兼顧多元主體的利益訴求,“騎行限制60周歲以下”的人為藩籬才會被打破。更進一步說,建設老年友好型社會,不僅需要公共部門的“制度補血”和社會層面的尊老敬老,也需要市場力量融入其中,讓老年人被溫柔相待。
每一個人都終將老去,老年人的需求不能被忽略和漠視。樹立和培育積極的老齡觀,以積極的態度、政策、行動應對人口老齡化。當尊重和善待老年人蔚然成風,老年人的美好生活才會“有愛無礙”。(楊朝清)
來源: 光明網-時評頻道
024年8月1日,正是貴陽市小學新生入學報名的時候,家長們到學校依次排隊等待老師審核報名資料。
突然,一名黑衣男子向正在審核資料的老師跪了下去,嘴里不停說道:“不要報警、不要報警......”然而,老師并沒有理會這名男子的請求,隨即撥通了報警電話。男子見勢不妙,起身迅速逃離了現場。
接到報警后,西湖路派出所民警立即趕到學校,原來黑衣男子所帶來的報名資料有假!
民警仔細核實,這男子帶的戶口簿是西湖路派出所的“高仿版”。雖然極其相似,但一些體現在戶口簿上的工作細節是仿不出來的。
圖丨假戶口本
民警再對該男子帶來的所有資料進行核實,發現皆是偽造。
后調取學校監控溯源排查,入學報名的這段時間里,黑衣男子常到南明、云巖、觀山湖、花溪、清鎮等地的學校周邊出入。
偵查民警開始著手調查,卻發現該男子居無定所、行蹤飄忽。偵查民警遂分組到各個學校周邊蹲守,伺機出擊。
8月2日,在花溪區一小學,黑衣男子又出現在排隊的家長中,民警迅速出擊,將黑衣男子抓獲。
圖丨犯罪嫌疑人陳某勇離開學校視頻截圖
“昨天還在南明求放過,今天又到花溪排隊報名了!”
經調查,黑衣男子名叫陳某勇,為了獲取家長“好處費”,自稱自己“有關系”“有捷徑”,能讓孩子讀上心儀的學校,因此,16名學生家長“慕名”而來。而為了讓新入學的學生能“報名成功”,陳某勇每天持多份假證輾轉于不同的學校。
陳某勇曾因偽造使用國家證件被公安機關打擊過,出獄后又重操舊業。
那么,這些假證從何而來呢?
民警決定從陳某勇入手,尋線偵查,發現陳某勇經常開車到威清路一巷內老舊小區里。偵查民警立即對小區進行摸排,最后,目標鎖定小區頂樓的出租屋。
如何神不知鬼不覺的情況下,打開頂樓出租屋的門呢?
偵查民警分組輪流在該出租屋的入口處設伏,24小時蹲守。三伏天戶外氣溫三十幾度,站著不動也汗涔涔的;設伏的地方往往是樹下或樓道,蚊蟲特別多。面對惡劣天氣,偵查員始終努力堅持。
圖丨偵查民警在嫌疑人家中查獲大量假證
連續蹲守很長時間,頂樓的房門還是緊閉不開。直到8月6日上午,頂樓終于有人出來,民警隨即迅速打開頂樓房門、沖進屋子。
民警卻被屋子里的場景震撼了!
只見屋內的地板上、沙發上、茶幾上,甚至床上,都擺滿了大小不一、五顏六色的證書。
有藍色的畢業證、墨綠的技術職稱證、黑色的資質認定證、白色的身份證、深褐的學士學位證、朱紅的戶口簿。還有許多偽造的印章,涉及全國各地許多單位。為了便于查找,還以省為分類標準,分門別類,用塑料袋裝好。
這不只是一個偽造證件窩點了,這完全是一個加工廠。
圖丨制造假證工具
民警沖進去時,屋里的兩個人還在忙碌“作業”,制作假證。
經審訊,男子陳某和女子李某某系夫妻,從外省赴筑務工,就想到制作假證獲取不義之財。為了擴大“銷路”,兩人還制作“東南亞證件集團公司”及聯系電話的名片,到處投遞。
但為了規避公安機關打擊,兩人在屋里購置充足的食物,白天深居簡出,不大外出。但再狡猾的狐貍也會露出破綻來。
圖丨西湖路派出所民警抓獲嫌疑人
該案查獲用于制作假證的印刷品1.2萬份,印章387個,同時還查獲打印機、制證機多臺。
目前,陳某勇、陳某、李某某已被公安機關刑事拘留,案件在進一步辦理中。
警方提示
不要相信任何的不學自通、不勞而獲。如果有,那制假的這對夫妻早就走上他們人生的巔峰了。
不要拿讀書的大事,孩子一生的前途和使用假證的這條“捷徑”對賭,既毀了孩子心中家長的形象,又損失了錢財,還影響了孩子的學習?!百r了夫人又折兵”,何苦呢?
希望相關部門把好關,一旦發現偽造證件,要及時報警處理。南明公安將重拳出擊,礪鋒亮劍,懲治犯罪。
轉自:貴陽公安南明分局
來源: 貴陽晚報
*請認真填寫需求信息,我們會在24小時內與您取得聯系。