ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
~~~javascript 1.var str='abc123', 2. num=parseFloat(str); 3.if(num===NaN){ 4. alert(NaN); 5.}else if(num===123){ 6. alert(123); 7.}else if(typeof num==='number'){ 8. alert('number'); //"number" 9.}else{ 10. alert('str'); 11.} ~~~ ~~~javascript 1.var a='abc'+123+456; 2.alert(a); // "abc123456" 3. 4.var b='456'-'123'; 5.alert(b); //"333" 6. 7.var c=1, 8. d='1'; 9.var f=c>d?(c<d?c:d):(c==d?c:d); //"1" 10.alert(f); ~~~ ### 5.用户昵称规定只能是“数字、大小写字母”组成,而且不能少于2位,也不能超过20位,写个正则匹配这个需求 ~~~ 1.let reg = /^[0-9a-zA-Z]{2,20}$/; ~~~ ### 6. 谈谈你对面向对象的理解! [JS本身就是面向对象编程的] JS本身就是基于面向对象(OOP)编程思想开发出来的语言,我们学习JS就是在学习JS中的类和实例,例如: 数组是Array的实例、对象是Object的实例、函数是Function的实例…,在这些内置类的原型上有很多公共的属性和方法,这些方法可以被实例调用,我们学习JS就是学习这些方法… [面向对象真实项目的应用] 平时的业务逻辑开发,我没有刻意使用类的方式来做,只有在一些组件或者插件封装的时候才会基于构造函数和原型链使用类和实例完成,例如:我之前封装过一些 TAB页卡、轮播图、模态框、表单验证等插件,就是这样处理的(我之前看了一些类库和插件的源码,也都是基于面向对象封装的) [面向对象中的一些语法和特点] 所谓面向对象就是基于class或者function创建一个类,执行的时候new执行创建一个实例,这样实例就可以调取类上提供的方法,想要基于面向对象进行插件封装,必须掌握关于类的继承、封装和多态,封装就是提取公共的方法、JS中没有严格意义的多态,不能进行方法的重写,常用的继承方式有很多,例如:原型继承、call继承、寄生组合继承、es6中的继承等,有些方式会存在一些问题,我项目中后来都是基于class中的extend实现继承的