javascript為什麼字串直接量可以使用屬性和方法
在分析標題中的問題之前先來看一段程式碼例項:
[JavaScript] 純文字檢視 複製程式碼var str="softwhy.com"; console.log(str.length);
如果不深究,那麼上面的程式碼實在是太普通不過了,但是細緻看來,可能有不少朋友有這樣的疑問,那就是為什麼字串直接量可以使用屬性或者方法,不是隻有物件才可能嗎,下面就介紹一下其中的原理:
當字串直接量呼叫屬性或者方法的時候,javascript會隱式將字串直接量轉換為物件,也就相當於執行了如下操作:
[JavaScript] 純文字檢視 複製程式碼var str="softwhy.com"; var str=new String(str) console.log(str.length);
特別說明:隱式轉換建立的是一個臨時物件,一旦屬性或者方法引用結束,這個新建立的物件就會被銷燬(在javascript的內部具體是否真正建立了臨時物件或者銷燬臨時物件不得而知,這裡不深究了,從表現來看確實如此)。對於其他的布林值或者數字也是一樣的道理。再來看一段程式碼例項:
[JavaScript] 純文字檢視 複製程式碼var str="softwhy.com"; str.len=15; console.log(str.len);
上面程式碼輸出是undefined,因為臨時物件在呼叫屬性之後就自動銷燬了。
程式碼修改如下:
[JavaScript] 純文字檢視 複製程式碼var str="softwhy.com"; var str=new String(str); str.len=15; console.log(str.len);
上面的程式碼沒有任何問題,因為這裡確確實實建立一個物件。
相關文章
- 為什麼 JavaScript 的私有屬性使用 # 符號JavaScript符號
- 字串的常用屬性和方法字串
- JavaScript 字串 length屬性JavaScript字串
- 為什麼基本型別可以呼叫方法——以字串為例型別字串
- python屬性和方法的區別是什麼Python
- vue 標籤和屬性中 字串拼接方法Vue字串
- JavaScript訪問物件的屬性和方法JavaScript物件
- JSON字串轉換為物件直接量JSON字串物件
- 屬性和方法
- 為什麼列印物件,點開檢視某屬性有值,但是直接列印無值物件
- Python類屬性和例項屬性分別是什麼?Python
- 我為什麼不推薦使用BeanUtils屬性轉換工具Bean
- JavaScript 物件直接量JavaScript物件
- JavaScript 數字呼叫方法或者屬性JavaScript
- 【譯】為什麼命名“它”為依賴屬性(DependencyProperty)
- 為什麼React元素有一個$$typeof屬性?React
- Laravel中你為什麼可以直接在 web.php 中 直接使用 Route ? 服務提供者的介紹LaravelWebPHP
- 為什麼idea建議使用“+”拼接字串Idea字串
- JavaScript內建物件屬性及方法大全JavaScript物件
- JavaScript 靜態屬性與靜態方法JavaScript
- .NET ORM 導航屬性【到底】可以解決什麼問題?ORM
- Rust 屬性是什麼?Rust
- JavaScript刪除和清空物件屬性JavaScript物件
- selenium用XPATH直接獲取屬性值 需要使用.get_attribute(“屬性名”)
- vue計算屬性和vue實力的屬性和方法Vue
- 根據屬性字串獲取屬性值字串
- javascript - 所有的檢視屬性和方法(offsetHeight、clientHeight、scrollHeight、innerHeight等)JavaScriptclient
- CSS中可以和不可以繼承的屬性CSS繼承
- 單執行緒的 Javascript 為什麼可以非同步執行緒JavaScript非同步
- JavaScript childElementCount 屬性JavaScript
- JavaScript prototype屬性JavaScript
- JavaScript files 屬性JavaScript
- JavaScript cells 屬性JavaScript
- JavaScript rows 屬性JavaScript
- JavaScript nodeName 屬性JavaScript
- JavaScript offsetX 屬性JavaScript
- JavaScript classList 屬性JavaScript
- JavaScript rowIndex 屬性JavaScriptIndex
- JavaScript tagName 屬性JavaScript