当前位置:首页 > 科技  > 软件

JS小知识,分享十个有用 JavaScript 小技巧

来源: 责编: 时间:2024-01-03 09:10:34 330观看
导读您可能已经知道 JavaScript 是世界上使用最广泛的编程语言。它用于 Web、移动混合应用程序、服务器端 (NodeJS) 和各种其他应用程序。由于它可用于在 Web 浏览器中显示以及使用 nodebot 或其他智能交互机器人,因此它可

ySk28资讯网——每日最新资讯28at.com

您可能已经知道 JavaScript 是世界上使用最广泛的编程语言。它用于 Web、移动混合应用程序、服务器端 (NodeJS) 和各种其他应用程序。由于它可用于在 Web 浏览器中显示以及使用 nodebot 或其他智能交互机器人,因此它可以作为许多新开发人员的编程入门。在就业市场上,精通 JavaScript 并能编写干净、高效代码的开发人员需求量很大。ySk28资讯网——每日最新资讯28at.com

无论使用何种浏览器/引擎或 SSJS(Server Side JavaScript)解释器,所有 JavaScript 开发人员都应该熟悉我将在本文中分享的提示、技巧和最佳实践。ySk28资讯网——每日最新资讯28at.com

1、一直使用 === 替代 ==

如有必要,使用 ==(或!=)运算符自动执行类型转换。使用 ===(或 !==)运算符时不会进行转换。有人可能会争辩说它比较值和类型比 == 更快。ySk28资讯网——每日最新资讯28at.com

[5] === 5   // is false[5]  == 5    // is true'5' == 5     // is true'5' === 5    // is false []   == 0     // is true [] ===  0     // is false '' == false   // is true but true == "a" is false '' ===   false // is false

2、第一次声明变量的值时,尽量避免使用 var 关键字

全局变量在分配给未声明的变量时自动声明。尽量防止使用全局变量。ySk28资讯网——每日最新资讯28at.com

3、使用 typeof、instanceof 和 constructor 时要小心。

typeof 操作符用于检测变量的数据类型,它返回一个字符串,表示变量的类型。它可以检测出所有类型,包括:ySk28资讯网——每日最新资讯28at.com

  • 基本类型(number, string, boolean, undefined)
  • 引用类型(object, function)
  • 如果要检测一个变量是否是基本类型,可以使用 typeof。
let x = 5;console.log(typeof x); // "number"

instanceof 操作符用于检测一个对象是否是某个类的实例。它返回一个布尔值,表示对象是否是类的实例。它只能用于检测对象类型,因为基本类型没有构造函数。ySk28资讯网——每日最新资讯28at.com

let x = new Date();console.log(x instanceof Date); // true

constructor 属性返回创建对象的构造函数。它也只能用于检测对象类型。ySk28资讯网——每日最新资讯28at.com

let x = new Date();console.log(x.constructor === Date); // true

它们之间的区别就是 typeof 操作符用于检测类型,而 instanceof 和 constructor 都用于检测类。 instanceof 操作符检测对象是否是某个类的实例,而 constructor 检测对象是由哪个类创建的。ySk28资讯网——每日最新资讯28at.com

另外,typeof 可以检测出所有类型,而 instanceof 和 constructor 只能检测对象ySk28资讯网——每日最新资讯28at.com

还有一点值得注意的是,instanceof 操作符在检测继承关系时也是有效的。比如,如果一个类 B 继承自另一个类 A,那么一个 B 类的实例也是 A 类的实例。ySk28资讯网——每日最新资讯28at.com

class A {}class B extends A {}let x = new B();console.log(x instanceof B); // trueconsole.log(x instanceof A); // true

而 constructor 属性则只能检测到对象是由哪个类直接创建的,并不能检测继承关系。ySk28资讯网——每日最新资讯28at.com

class A {}class B extends A {}let x = new B();console.log(x.constructor === B); // trueconsole.log(x.constructor === A); // false

总结一下,typeof 操作符用于检测变量的类型,instanceof 操作符用于检测对象是否是某个类的实例,而 constructor 属性用于检测对象是由哪个类创建的。ySk28资讯网——每日最新资讯28at.com

typeof 和 instanceof 都只能检测对象类型,但instanceof 不能检测基本类型。 instanceof 可以检测继承关系,而 constructor 只能检测直接创建的关系。ySk28资讯网——每日最新资讯28at.com

4、False 值包括 undefined、null、0、false、NaN 和“(空字符串)

5、创建自调用函数(IIFE)

自调用匿名函数或立即调用函数表达式是此 (IIFE) 的通用名称。它是以下形式的函数,在创建后立即运行:ySk28资讯网——每日最新资讯28at.com

(function(){    // some private code to be executed automatically})();  (function(d,y){    var result = d+y;    return result;})(20,20)

6、随机数字数组

var numbers = [6, 650, 140 , -225 , 233 , 500 , 152300, -81451];numbers = numbers.sort(function(){ return Math.random() - 0.5});

7、验证给定的参数是一个数字

function isNumber(n){    return !isNaN(parseFloat(n)) && isFinite(n);}

8、将 arguments 对象转换为数组

var argumentsArray = Array.prototype.slice.call(arguments);

9、清空数组

var newArray = [12 , 222 , 1000 ];  newArray.length = 0; // newArray will be equal to [].

10、使用 map() 函数方法循环遍历数组的项目

var squares = [1,4,6,2].map(function (val) {      return val * val;  }); // squares will be equal to [1, 16, 36, 4]

结束语

由于文章篇幅问题,今天的介绍就到这里。ySk28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-56549-0.htmlJS小知识,分享十个有用 JavaScript 小技巧

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: Net开发,如何高效和可靠的方式来存储和管理大文件

下一篇: Uber Go 出了个静态分析工具 NilAway,还挺实用!

标签:
  • 热门焦点
  • 直屏旗舰来了 iQOO 12和K70 Pro同台竞技

    旗舰机基本上使用的都是双曲面屏幕,这就让很多喜欢直屏的爱好者在苦等一款直屏旗舰,这次,你们等到了。据博主数码闲聊站带来的最新爆料称,Redmi下代旗舰K70 Pro和iQOO 12两款手
  • 中兴AX5400Pro+上手体验:再升级 双2.5G网口+USB 3.0这次全都有

    2021年11月的时候,中兴先后发布了两款路由器产品,中兴AX5400和中兴AX5400 Pro,从产品命名上就不难看出这是隶属于同一系列的,但在外观设计上这两款产品可以说是完全没一点关系
  • 5月iOS设备好评榜:iPhone 14仅排第43?

    来到新的一月,安兔兔的各个榜单又重新汇总了数据,像安卓阵营的榜单都有着比较大的变动,不过iOS由于设备的更新换代并没有那么快,所以相对来说变化并不大,特别是iOS好评榜,老款设
  • 三言两语说透柯里化和反柯里化

    JavaScript中的柯里化(Currying)和反柯里化(Uncurrying)是两种很有用的技术,可以帮助我们写出更加优雅、泛用的函数。本文将首先介绍柯里化和反柯里化的概念、实现原理和应用
  • 微信语音大揭秘:为什么禁止转发?

    大家好,我是你们的小米。今天,我要和大家聊一个有趣的话题:为什么微信语音不可以转发?这是一个我们经常在日常使用中遇到的问题,也是一个让很多人好奇的问题。让我们一起来揭开这
  • 零售大模型“干中学”,攀爬数字化珠峰

    文/侯煜编辑/cc来源/华尔街科技眼对于绝大多数登山爱好者而言,攀爬珠穆朗玛峰可谓终极目标。攀登珠峰的商业路线有两条,一是尼泊尔境内的南坡路线,一是中国境内的北坡路线。相
  • 小米公益基金会捐赠2500万元驰援北京、河北暴雨救灾

    8月2日消息,今日小米科技创始人雷军在其微博上发布消息称,小米公益基金会宣布捐赠2500万元驰援北京、河北暴雨救灾。携手抗灾,京冀安康!以下为公告原文
  • 7月4日见!iQOO 11S官宣:“鸡血版”骁龙8 Gen2+200W快充加持

    上半年已接近尾声,截至目前各大品牌旗下的顶级旗舰都已悉数亮相,而下半年即将推出的顶级旗舰已经成为了数码圈爆料的主流,其中就包括全新的iQOO 11S系
  • 联想的ThinkBook Plus下一版曝光,键盘旁边塞个平板

    ThinkBook Plus 是联想的一个特殊笔记本类别,它在封面放入了一块墨水屏,也给人留下了较为深刻的印象。据有人爆料,联想的下一款 ThinkBook Plus 可能更特殊,它
Top