每天三道前端面试题03

1.Vue 生命周期总共分为几个阶段?(必会)

2.列举三种强制类型转换

3.toString()与String()的区别

-----------------

1.Vue 生命周期总共分为几个阶段?

生命周期分为三大阶段:初始化显示、更新显示、销毁Vue实例

初始化阶段的钩子函数:

  • beforeCreate() 实例创建前:数据和模板均未获取到
  • created() 实例创建后: 最早可访问到 data 数据,但模板未获取到
  • beforeMount() 数据挂载前:模板已获取到,但是数据未挂载到模板上。
  • mounted() 数据挂载后: 数据已挂载到模板中

更新阶段的钩子函数:

  • beforeUpdate() 模板更新前:data 改变后,更新数据模板前调用
  • updated() 模板更新后:将 data 渲染到数据模板中

销毁阶段的钩子函数:

  • beforeDestroy() 实例销毁前
  • destroyed() 实例销毁后

2.列举三种强制类型转换?

转化成字符串 toString() String()
转换成数字 Number()、 parseInt()、 parseFloat()
转换成布尔类型 Boolean()

3.String()与toString()的区别?

String()和toString()方法都是将其它类型的变量转换为字符串的方法但两者存在一定的区别:
x.toString(): 无法转换null和undefined:

解析:

 var a = 123;//123
    var b = true;//true
    var c = null;//(21段代码-报错信息位置)
    var d = undefined;
    console.log(a.toString());
    console.log(b.toString());
    console.log(c.toString());
    console.log(d.toString());

运行此段代码会看到下面的报错信息。

第三行的运行结果报错了,Uncaught TypeError: Cannot read property 'toString' of undefined(…)这句话的意思为:未捕获:无法读取属性的toString定义,也就是说我们对于c这个变量没有赋值,不能找到该值,所以不能转换。

同样的第四行代码也是出错的,Uncaught TypeError: Cannot read property 'toString' of null这句话的意思未捕获TypeError:无法读取属性的toString null,意思为类型为null的变量不能应用该方法。

为了解决上面的问题重写toString()方法,代码如下:

function String(x){
           if(x===undefined){
             return "undefined";
                   }else if(x===null){
                     return "null";
                   }else{
             return x.toString();
                   }
                 }

通过上面的代码我们很好的规避了刚才发生错误的两个地方。 

下面我们来看String()方法:

var a=123;
var b=true;
var c;
var d=null;
console.log(String(a));
console.log(String(b));
console.log(String(c));
console.log(String(d));

通过相同代码的比较,我们可以得出String()方法较toString()方法应用范围上要更加广泛。  

解析例子参考博客园:疯狂的小标点

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端-rabbit

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值