js 中實現getter和setter函數方法,及運算符的特殊用法 - ZenDei
文章推薦指數: 80 %
js 中實現getter和setter函數方法,及運算符的特殊用法 · getter簡單說來就是一種獲得屬性值的方法,setter簡單說來就是一種設置屬性值的方法 · getter負責查詢值,它不帶 ...
首頁
NET技術編程語言軟件設計WEB前端手機開發數據庫技術操作系統
js中實現getter和setter函數方法,及運算符的特殊用法
来源:https://www.cnblogs.com/cyk2018/archive/2018/12/26/10181527.html
-Advertisement-
1.getter與setterjavascript的大部分東西是簡化了的。
這裡我們假設有一個student對象,並且我們用student.age來訪問它的age屬性,如果此時定義了age屬性,我們就會得到它的值,如果沒有,我們就會得到undefined。
但是我們也可以編寫自定義的getter和...
1.getter與setter
javascript的大部分東西是簡化了的。
這裡我們假設有一個student對象,並且我們用student.age來訪問它的age屬性,如果此時定義了age屬性,我們就會得到它
的值,如果沒有,我們就會得到undefined。
但是我們也可以編寫自定義的getter和setter函數來獲取我們的想要的東西,而不是直接返回對象的值,設置值的時候也是一樣。
這樣我們就可以實現更多複雜的獲取和設置欄位的功能,如虛擬欄位,欄位驗證,副作用等,ES6中添加了更加方便的語法形式。
getter簡單說來就是一種獲得屬性值的方法,setter簡單說來就是一種設置屬性值的方法
getter負責查詢值,它不帶任何參數,setter則負責設置鍵值,值是以參數的形式在內部傳遞。
//isNaN()函數用來確定一個值是否為NaN,即判斷該值是否為一個非數字。
conststudent={
firstName:'job',
lastName:'jark',
getfullName(){
returnthis.firstName+''+this.lastName;
},
setage(value){
if(isNaN(value))throwError("Ithasbeenabumber");
this_age=Number(value)
},
getage(){
returnthis_age
}
};
console.log(student.firstName);
student.firstName='jerry';
console.log(student.fullName);
student.age='21';
console.log(student.age);
student.age='error';
2.運算符
1.逗號運算符
通常逗號運算符用於在一行編寫多個語句,或者在for迴圈中使用,比如
vara,b,n=6;
for(a=0,b=0;a<=n&&b<=n;a++,b++){
}
functioncalculate(){
returna++,console.log(a),a;
}
我們還可以用它在一行中編寫有逗號分隔的多個表達式,,並返回最後一個表達式的結果。
//通過var定義的變數,作用域是整個封閉函數,是全域的。
通過let定義的變數,作用域是在塊級或是子塊中。
letresult=number1,number2,...,numberN;
2.!!運算符
他的效果與使用兩次的js否定運算符的作用是一致的。
!!是將任何表達式轉化為布爾類型的表達式的相對較優的運算符。
同樣的,如果表達式的返回值為真值,則返回true,否則則返回false。
!!null//returnsfalse
!!undefined//returnsfalse
!!false//returnsfalse
!!true//returnstrue
!!""//returnsfalse
!!"somestring"//returnstrue
!!0//returnsfalse
!!1//returnstrue
!![]//returnstrue
!!{}//returnstrue
3.+運算符
+運算符能夠快速的將字元串轉化為數字,只需要在字元串前面加上+號即可,+運算符還適用於負數,八進位,十六進位和指數,可以將date或者Moment.js對象轉化為時間戳。
//時間戳(timestamp),一個能表示一份數據在某個特定時間之前已經存在的、完整的、可驗證的數據,通常是一個字元序列,唯一地標識某一刻的時間。
+'3.11'//returns3.11
+'-4'//returns-4
+'0xFF'//returns255
+true//returns1
+'123e-5'//returns0.00123
+false//returns0
+null//returns0
+'Infinity'//returnsInfinity
+'1,234'//returnsNan
+dateObject//returns1542975502981
+momentObject//returns1542975502981
4.~運算符
位運算符一般使用的很少,當他與數字一起使用的時候,比如~N=>-(N+1),這個式子僅當N==-1的時候結果為0。
我們可以在indexof(..)函數前面加一個~來進行布爾檢查,檢查一個項是否存在於Array或者string中。
letuserName='breakjerry'
if(~userName.indexOf("break")){
console.log('accessdenied');
}else{
console.log('accessgranted');
}
您的分享是我們最大的動力!
-Advertisement-
更多相關文章
iOS關於監聽手機截圖,UIView生成UIImage,UIImage裁剪與壓縮的總結
一.關於監聽手機截圖1.背景:發現商品的售價頁總是被人轉發截圖,為了方便用戶添加截圖分享的小功能首先要註冊用戶截屏操作的通知之後人為截圖人為截圖,在這裡可以對圖片進行一些操作,比如添加自己的APP二維碼啥的類似微博當然最後不要忘記註銷通知,這裡要註意,根據需求來,如果商品詳情頁又可以...
【代碼筆記】Web-JavaScript-JavaScript類型轉換
一,效果圖。
二,代碼。
typeof操作符返回變數、對象...
實現一個函數clone,可以對JavaScript中的5種主要的數據類型(包括Number、String、Object、Array、Boolean)進行值複製
記錄一下,方便以後複製粘貼取自https://www.cnblogs.com/gxq666/archive/2018/12/27/10182940.html...
撩課-Web大前端每天5道面試題-Day19
1.實現一個函數clone,可以對JavaScript中的5種主要的數據類型(包括Number、String、Object、Array、Boolean)進行值複製2.下麵這個ul,如何點擊每一列的時候alert其index?(閉包)3.對於MVVM的理解?4.什麼是vue生命周期?5.Vue...
三級聯動
請選擇地區:...
實現點擊到底部、頂部、指定div功能
頂部:$(".back_top").click(function(){scrollTo(0,0);});functiongoTop(){$('html,body').animate({scrollTop:0},'slow');}底部:$(".back_bottom")....
Koa與Node.js開發實戰(1)——Koa安裝搭建(視頻演示)
筆者相信在未來的某一天,Koa一定會完全替代Express,成為Node.jsWeb框架的主流。
...
JS中的__proto__、prototype、constructor
__proto__、prototype、constructor...
一周排行
-Advertisement-
VisualStudio禁用移動文件到文件夾自動修改命名空間功能
.NET運行時之書(BookoftheRuntime,簡稱BotR)是一系列描述.NET運行時的文檔,2007年左右在微軟內部創建,最初的目的為了幫助其新員工快速上手.NET運行時;隨著.NET開源,BotR也被公開了出來,如果你想深入理解CLR,這系列文章你不可錯過。
BotR系列目錄:[...
NetCore配置Swagger
一:背景1.講故事其實這個問題是前段時間有位朋友咨詢我的,由於問題說的比較泛,不便作答,但想想梳理一下還是能回答一些的,這篇就來聊一聊下麵這幾個鎖。
InterlockedAutoResetEvent/ManualResetEventSemaphore用戶態層面我就不想說了,網上一搜...
Python學習:轉義字元及用法、數據類型轉換函數
前言本次案例最終實現效果開發環境python3.8:解釋器pycharm:代碼編輯器界面代碼實現先導入所需模塊importtkinterastkfromtkinterimportttkimporttkinter.messagebox創建視窗root=tk...
排序演算法基本思想及實現
一、插入排序1、直接插入排序基本思想:類似抓撲克牌,待排序元素在已排序的序列中從後往前遍歷,遇到小於他的元素向後移一位,直至遇到小於或等於他的元素,在其後插入即可2、希爾排序(是對直接插入排序的一種改進)二、交換排序1、冒泡排序基本思想:相鄰的兩個元素進行兩兩比較,如果出現逆序,則小的元...
認識Java的整形數據結構
摘要:java中一切都是對象,為什麼int不用創建對象實例化,而可以直接使用?本文分享自華為雲社區《【Java】對基本類型-整型數據結構的認識》,作者:huahua.Dr。
整型數據類型有兩個:基本類型和引用類型(包裝類)整數型基本類型:byte,int,short,long其引用類型:B...
JAVA設計模式-建造者模式
“為什麼加索引能提升查詢效率”!我們都認為“加索引”提升查詢效率是理所應當的竟然還有理由?該怎麼回答呢?大家好,我是Mic,一個工作了14年的Java程式員下麵分析一下這個問題的考察點考察目標這是一道原理性的問題,考察求職者對於Mysql中索引的實現原理的理解程度。
一般情況下,考察3...
WindowsOpenGL圖像對比度調節
零基礎OpenGLES學習路線推薦:OpenGLES學習目錄>>OpenGLES基礎零基礎OpenGLES學習路線推薦:OpenGLES學習目錄>>OpenGLES特效零基礎OpenGLES學習路線推薦:OpenGLES學習目錄>>O...
keycloak~資源的遠程授權
17.1遠程資源授權準備17.1.1認證和訪問流程圖參考:http://www.zyiz.net/tech/detail-141309.html17.1.2為用戶指定角色可以使用ROLE_USER和ROLE_ADMIN兩種角色17.1.3添加認證服務和資源服務17.1.4配置客戶端的認...
Django_模型詳解
Django_模型ORMDjango中內嵌了ORM框架,不需要直接編寫SQL語句進行資料庫操作,而是通過定義模型類,操作模型類來完成對資料庫中表的增刪改查和創建等操作。
O是object,也就類對象的意思。
R是relation,翻譯成中文是關係,也就是關係資料庫中數據表的意思。
M是mappin...
Docker安裝和卸載(centos)
Docker安裝和卸載一,已安裝Docker,卸載Docker1.方法一sudoyumremovedocker\docker-client\docker-client-latest\docker-common\docker-latest\docker-latest-l...
所有分類
NET技術編程語言軟件設計WEB前端手機開發數據庫技術操作系統
延伸文章資訊
- 1Getter/Setter高级用法,这也许是你会遇到的Google Chrome Bug
文章重点内容主要阐述JavaScript 中Getter/Setter 属性访问/操作符的”屏蔽“作用。 ... 首先我们先来看看一段非常普通的JS 代码:.
- 2JavaScript的getter与setter方法作用解析 - 掘金
当属性age被读取时调用getter函数;当age被写入时调用setter函数。
- 3getter/setter - iT 邦幫忙::一起幫忙解決難題,拯救IT 人的一天
- 4属性的getter 和setter - 现代JavaScript 教程
访问器属性由“getter” 和“setter” 方法表示。在对象字面量中,它们用 get ... propName 时,getter 起作用 }, set propName(value) { ...
- 5javascript中getter和setter有什么用? - SegmentFault 思否
getter和setter不就是赋值与获取值的意思吗? var obj = {}; obj.name="john" 这 ... 前面已经有人讲了拦截的作用,我这里补充一下,如有错误请指出。