undefined是否會(huì)變?yōu)閚ull原理解析
echarts 會(huì)將 series data中的數(shù)據(jù)并不是你想的那樣簡(jiǎn)單
我們很多小伙伴都使用過(guò)echarts。
然后 series:[{ data:[] }] 中的數(shù)據(jù)可能并沒(méi)有我們想的那樣簡(jiǎn)單
為什么會(huì)這樣說(shuō):因?yàn)槟憧聪旅孢@個(gè)例子絕對(duì)會(huì)然你有所收獲。
series data 中的數(shù)據(jù)會(huì)自動(dòng)發(fā)生變化嗎?
<template> <div> <!-- 第1處:小伙伴們覺(jué)得這里數(shù)組中的值是否是 [undefined, undefined, undefined, undefined, undefined, undefined, undefined] --> <h4>{{ objInfo.data1 }}</h4> <div id='demo1'></div> </div> </template> <script> import echarts from 'echarts' export default { data() { return { objInfo: { data1: [undefined, undefined, undefined, undefined, undefined, undefined, undefined], xdata1: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] } } }, mounted() { var myChart1 = echarts.init(document.getElementById("demo1")); let option1 = { xAxis: { type: 'category', data: this.objInfo.xdata1 }, yAxis: { type: 'value' }, series: [ { data: this.objInfo.data, type: 'line', smooth: true } ] }; //第2處:小伙伴們覺(jué)得這里應(yīng)該輸出的數(shù)組的值是什么呢? console.log('控制臺(tái)輸入的數(shù)據(jù)', this.objInfo.data1) myChart1.setOption(option1); } } </script>
大家覺(jué)得頁(yè)面中
第1處: <h4>{{ objInfo.data1 }}</h4> 數(shù)組中的值是否是 undefined ?
很多小伙伴都會(huì)覺(jué)得這里應(yīng)該是
[undefined, undefined, undefined, undefined,
undefined, undefined, undefined] 是這樣還是不是這樣 ?
第2處:小伙伴們覺(jué)得這里應(yīng)該輸出的數(shù)組的值是什么呢?
console.log('控制臺(tái)輸入的數(shù)據(jù)', this.objInfo.data1)
[undefined, undefined, undefined, undefined,
undefined, undefined, undefined] 是這樣還是不是這樣 ?
小伙伴們想好結(jié)果了嗎? 如果想好了。請(qǐng)看下面的圖片
為什么會(huì)series data 中 undefined 會(huì)變?yōu)?null
有的小伙伴會(huì)說(shuō):是不是echarts底層在更改了數(shù)據(jù)? 有可能,我們使用watch去監(jiān)聽(tīng)一下,如果更改數(shù)據(jù)肯定會(huì)被我們監(jiān)聽(tīng)到 watch: { "obj.data1": function (newval, oldval) { console.log('oldval', oldval) console.log('newval', newval) }, deep: true, },
通過(guò)上面的圖片我們可以知道,echarts并沒(méi)有更改數(shù)據(jù).否者會(huì)觸發(fā)watch
說(shuō)明并不是echarts底層給我們改了數(shù)據(jù)。
那數(shù)據(jù)從undefined 變?yōu)?null 肯定是有一個(gè)地方改動(dòng)了。
如果不是echarts,那就是vue。難道真的是vue給我們改了數(shù)據(jù)?
求證:undefined 會(huì)變?yōu)?null是 vue 的鍋
<template> <div> <h3>數(shù)據(jù)會(huì)變?yōu)閡nll嗎</h3> <h2>{{ data2 }}</h2> </div> </template> export default { data() { return { data2:[undefined,undefined] } }, mounted() { console.log('data2', this.data2) } }
我滴親娘呢?真的是vue給我們改了的呀,簡(jiǎn)直不敢相信。
有的小伙伴又說(shuō):有沒(méi)有可能也不是vue的鍋。
而是js本身就有這樣的特征,在視圖上會(huì)由 undefined 變?yōu)?null
下面我們不要使用vue框架。就使用普通的js去看看。
如果還是從 undefined 變?yōu)榱?null.說(shuō)明是 vue 的鍋。
否者這就是一個(gè)特征:在視圖上會(huì)由 undefined 變?yōu)?null
小心求證 數(shù)據(jù)由 undefined 變?yōu)?null
<body> <h3>數(shù)據(jù)會(huì)發(fā)生變化嗎?</h3> <div id="demo"> </div> </body> <script> let data = { arr: [undefined, undefined, undefined, undefined, '數(shù)據(jù)1'], title: '會(huì)發(fā)生變化嗎?' } let demo = document.getElementById('demo') console.log('控制臺(tái)的數(shù)據(jù)', data) let htmltest = `<div>${data.arr}</div>` demo.innerHTML = htmltest </script>
我們發(fā)現(xiàn)了:
原生js中, undefined在視圖上會(huì)變?yōu)榭兆址?/p>
但是在vue中,undefined在視圖上會(huì)變?yōu)閚ull。
我們看下:原生js中 null 在視圖上是否也會(huì)變?yōu)榭兆址畣幔?/h3>
<body>
<h3>數(shù)據(jù)會(huì)發(fā)生變化嗎?</h3>
<div id="demo"> </div>
</body>
<script>
let data = {
arr: [undefined, '數(shù)據(jù)2', null, '數(shù)據(jù)4'],
}
let demo = document.getElementById('demo')
console.log('控制臺(tái)的數(shù)據(jù)', data)
let htmltest = `<div>${data.arr}</div>`
demo.innerHTML = htmltest
</script>
<body> <h3>數(shù)據(jù)會(huì)發(fā)生變化嗎?</h3> <div id="demo"> </div> </body> <script> let data = { arr: [undefined, '數(shù)據(jù)2', null, '數(shù)據(jù)4'], } let demo = document.getElementById('demo') console.log('控制臺(tái)的數(shù)據(jù)', data) let htmltest = `<div>${data.arr}</div>` demo.innerHTML = htmltest </script>
原生js中 null 在視圖上也會(huì)變?yōu)榭兆址畣? 是的
我為什會(huì)糾結(jié)在視圖上 undefined 發(fā)生了變化呢?
因?yàn)榻裉煳野l(fā)現(xiàn):在頁(yè)面上的null。
我在代碼中找了好久都沒(méi)有找到哪一個(gè)地方寫(xiě)了null.這讓我很疑惑
花費(fèi)了我不少時(shí)間,導(dǎo)致我沒(méi)有辦法摸魚(yú)。
所以:為了更好的摸魚(yú),呸,呸,呸, 為了掘金的獎(jiǎng)品 就寫(xiě)下了這篇文章。
總結(jié)
通過(guò)一步一步的分析:我們知道了
1==》在vue中, undefined 在視圖上會(huì)變?yōu)?null。
在vue中, null 在視圖上仍然是 null
補(bǔ)充:但是字符串 'undefined' 和 'null' 在視圖上會(huì)保持不變
2==》原生js中, undefined 在視圖上會(huì)變?yōu)榭兆址?/p>
null 在視圖上也會(huì)變?yōu)榭兆址?/p>
補(bǔ)充:但是字符串 'undefined' 和 'null' 在視圖上會(huì)保持不變
以上就是undefined是否會(huì)變?yōu)閚ull原理解析的詳細(xì)內(nèi)容,更多關(guān)于undefined是否會(huì)變?yōu)閚ull的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
vue實(shí)現(xiàn)滾動(dòng)鼠標(biāo)滾輪切換頁(yè)面
這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)滾動(dòng)鼠標(biāo)滾輪切換頁(yè)面,類(lèi)似于縱向走馬燈,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-12-12vue環(huán)境如何實(shí)現(xiàn)div?focus?blur焦點(diǎn)事件
這篇文章主要介紹了vue環(huán)境如何實(shí)現(xiàn)div?focus?blur焦點(diǎn)事件,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08vue使用swiper實(shí)現(xiàn)中間大兩邊小的輪播圖效果
這篇文章主要介紹了vue使用swiper實(shí)現(xiàn)中間大兩邊小的輪播圖效果,本文分步驟通過(guò)實(shí)例代碼講解的非常詳細(xì),需要的朋友可以參考下2019-11-11vue項(xiàng)目如何去掉URL中#符號(hào)的方法
在開(kāi)發(fā)過(guò)程中發(fā)現(xiàn)路徑中帶有/#/的標(biāo)示,而且還去不掉,很丑陋,下面這篇文章主要給大家介紹了vue項(xiàng)目如何去掉URL中#符號(hào)的相關(guān)資料,文中通過(guò)實(shí)例代碼的非常詳細(xì),需要的朋友可以參考下2022-07-07基于Vue-Cli 打包自動(dòng)生成/抽離相關(guān)配置文件的實(shí)現(xiàn)方法
基于Vue-cli 項(xiàng)目產(chǎn)品部署,涉及到的交互的地址等配置信息,每次都要重新打包才能生效,極大的降低了效率。這篇文章主要介紹了基于Vue-Cli 打包自動(dòng)生成/抽離相關(guān)配置文件 ,需要的朋友可以參考下2018-12-12vue-star評(píng)星組件開(kāi)發(fā)實(shí)例
下面小編就為大家分享一篇vue-star評(píng)星組件開(kāi)發(fā)實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-03-03Vue實(shí)現(xiàn)縱向的物流時(shí)間軸效果的示例代碼
在當(dāng)今數(shù)字化的時(shí)代,用戶(hù)體驗(yàn)的優(yōu)化至關(guān)重要,物流信息的展示作為電商和供應(yīng)鏈領(lǐng)域中的關(guān)鍵環(huán)節(jié),其呈現(xiàn)方式直接影響著用戶(hù)對(duì)貨物運(yùn)輸狀態(tài)的感知和滿(mǎn)意度,所以本文介紹了Vue實(shí)現(xiàn)縱向的物流時(shí)間軸效果的方法,需要的朋友可以參考下2024-08-08Pinia簡(jiǎn)單使用以及數(shù)據(jù)持久化詳解
最近正在使用Pinia進(jìn)行狀態(tài)管理,我希望在重新刷新頁(yè)面時(shí)保持狀態(tài),下面這篇文章主要給大家介紹了關(guān)于Pinia簡(jiǎn)單使用以及數(shù)據(jù)持久化的相關(guān)資料,需要的朋友可以參考下2022-05-05vue實(shí)現(xiàn)移動(dòng)端touch拖拽排序
這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)移動(dòng)端touch拖拽排序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-07-07