没加number修饰符,typeof message结果为什么是number?

没加number修饰符,typeof message结果为什么是number?

老师您好,


我还没有在v-model后加number修饰符,typeof message的结果就是number,而不是string,这是为什么?

代码:

<body>
    <div id="root"></div>
</body>
<script>
    const app = Vue.createApp({
        data() {
            return {
                message: 10,
            }
        },
        template: `
            {{typeof message}}
            <input type='number' v-model='message' />      
        `
    });
    const vm = app.mount('#root');
</script>

结果:

https://img1.sycdn.imooc.com//climg/62fe1658096741d604540143.jpg

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,因为代码中设置了input框的输入类型是数字:

https://img1.sycdn.imooc.com//climg/62fee95c0913844e05180083.jpg

type='number'这个属性会限制输入内容是“数字”,所以类型检查得到的结果是number,可以把该属性去掉试试。“ddxz”同学也试一下。

祝学习愉快!

  • 晓之蛇 提问者 #1

    视频6分钟时的截图,截图中老师代码也加了type='number'的,老师代码检查得到结果就是string。

    https://img1.sycdn.imooc.com//climg/62feea7409ad59a113570769.jpg

    烦请核实

    2022-08-19 09:43:07
  • 好帮手慕久久 回复 提问者 晓之蛇 #2

    解答如下:

    是vue版本的问题,视频中讲师使用的vue版本是较低的3版本,该版本中,会出现上述现象。可以用3.0.0版本测试:

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>lesson 3</title>
        <script src="https://unpkg.com/vue@3.0.0/dist/vue.global.js"></script>
    </head>
    <body>
        <div id="root"></div>
    </body>
    <script>
        const app = Vue.createApp({
            data () {
                return {
                    message: "10",
                }
            },
            template: `
                {{typeof message}}
                <input type='number' v-model='message' />      
            `
        });
        const vm = app.mount('#root');
    </script>
    </html>

    如果vue链接使用https://unpkg.com/vue@next这个地址,则是引入最新版本的vue。

    不同版本的vue,部分代码的功能、表现形式会有些许差别,这是正常的,了解就行。

    2022-08-19 10:21:39
ddxz 2022-08-18 19:31:29

你现在的message的值是10  10不就是number吗

你要是message='10'   '10'才是字符串

  • 提问者 晓之蛇 #1

    视频中5分45秒左右,老师输入数字,typeof message一直是string,见图1

    https://img1.sycdn.imooc.com//climg/62fe248b096bc26f05490214.jpg

    我已将你说的message:10 改为 message:'123',不加number修饰符输入数字,string变成的number,见图2。

    https://img1.sycdn.imooc.com//climg/62fe24cd094282a003950147.jpg

    这是我的问题。


    2022-08-18 19:39:39
  • ddxz 回复 提问者 晓之蛇 #2

    我试验没有出现你这个问题啊  建议你把源码 贴上来 0.0.

    2022-08-18 19:48:02
  • ddxz 回复 提问者 晓之蛇 #3

    有这个问题了 我瞅瞅 

    2022-08-18 19:49:54
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师