惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

IT之家
IT之家
Last Week in AI
Last Week in AI
博客园_首页
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 叶小钗
大猫的无限游戏
大猫的无限游戏
人人都是产品经理
人人都是产品经理
V
Visual Studio Blog
宝玉的分享
宝玉的分享
博客园 - Franky
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
月光博客
月光博客
T
Tailwind CSS Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
量子位
博客园 - 聂微东
S
SegmentFault 最新的问题
博客园 - 司徒正美
罗磊的独立博客
V
V2EX
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
美团技术团队
小众软件
小众软件
Jina AI
Jina AI

张鑫旭-鑫空间-鑫生活

1分钟速度了解text-align match-parent声明 « 张鑫旭-鑫空间-鑫生活 光标的形状也能设置了,就是CSS caret-shape属性 « 张鑫旭-鑫空间-鑫生活 pretext与文字四面环绕效果的实现 « 张鑫旭-鑫空间-鑫生活 JSON.rawJSON方法的作用是什么? « 张鑫旭-鑫空间-鑫生活 如何使用CSS判断鼠标从哪个方向进入元素? « 张鑫旭-鑫空间-鑫生活 借助mediabunny纯JS实现视频水印、剪裁、合成等功能 « 张鑫旭-鑫空间-鑫生活 务必谨慎使用JS WeakRef弱引用 « 张鑫旭-鑫空间-鑫生活 CSS六边形头像的实现与蜂巢布局 « 张鑫旭-鑫空间-鑫生活 CSS corner-shape与背景底纹技术 « 张鑫旭-鑫空间-鑫生活 浅学WebTransport API:下一代Web双向通信技术 « 张鑫旭-鑫空间-鑫生活 HTML dialog元素新支持了closedBy属性 « 张鑫旭-鑫空间-鑫生活 HTML interestfor属性与悬停popover交互效果 « 张鑫旭-鑫空间-鑫生活 CSS3模拟window7炫酷界面效果展示 « 张鑫旭-鑫空间-鑫生活 图片旋转+剪裁js插件(兼容各浏览器) « 张鑫旭-鑫空间-鑫生活 纯js无图片无外链CSS图片幻灯片播放插件 « 张鑫旭-鑫空间-鑫生活 CSS border三角、圆角图形生成技术简介 « 张鑫旭-鑫空间-鑫生活 CSS “渐进增强”在web制作中常见应用举例 « 张鑫旭-鑫空间-鑫生活 让IE6/IE7/IE8浏览器支持CSS3属性 « 张鑫旭-鑫空间-鑫生活 jQuery – 高亮动态显示页面HTML代码插件 « 张鑫旭-鑫空间-鑫生活 翻译 – 逐渐消失的Flash网站 « 张鑫旭-鑫空间-鑫生活 CSS reset的重新审视 – 避免样式重置 « 张鑫旭-鑫空间-鑫生活 新浪微博插入话题后部分文字选中的js实现 « 张鑫旭-鑫空间-鑫生活 JavaScript实现http地址自动检测并添加URL链接 « 张鑫旭-鑫空间-鑫生活 CSS实现兼容性的渐变背景(gradient)效果 « 张鑫旭-鑫空间-鑫生活 CSS content内容生成技术以及应用 « 张鑫旭-鑫空间-鑫生活 CSS gradient渐变之webkit核心浏览器下的使用 « 张鑫旭-鑫空间-鑫生活 CSS渐变之CSS3 gradient在Firefox3.6下的使用 « 张鑫旭-鑫空间-鑫生活 区分IE8/IE7/IE6及其他浏览器-CSS “\9″hack « 张鑫旭-鑫空间-鑫生活 CSS实现跨浏览器兼容性的盒阴影效果 « 张鑫旭-鑫空间-鑫生活 CSS3&HTML5各浏览器支持情况一览表 « 张鑫旭-鑫空间-鑫生活
Object.is/===、数组at/直接索引、substring/slice的区别 « ...
张鑫旭,zhangxinxu · 2024-10-24 · via 张鑫旭-鑫空间-鑫生活

by zhangxinxu from https://www.zhangxinxu.com/wordpress/?p=11387
本文可全文转载,独立域名个人网站无需授权,但需要保留原作者、出处以及文中链接,任何网站均可摘要聚合,商用请联系授权。

喜鹊鸟类占位图

一、Object.is和===的区别

Object.is()静态方法可以比较两个对象是否严格相等,在绝大多数情况下,和三等于号===的作用是一样的。

除了下面两种情况:

1. NaN的比较

如果使用等于好比较,则NaN和NaN的返回结果是false

NaN === NaN
// false

但使用Object.is()比较则返回的是true

Object.is(NaN, NaN)
// true

2. +0和-0的比较

一句话,=== 是认为相等的,而Object.is()认为是不相等的,代码示意:

+0 === -0
// true

Object.is(+0, -0)
// false

二、数组at方法和直接索引的区别

已知一个数组 arr = [1,2,3],则下面两种写法均等返回数组的第二项内容:

const arr = [1,2,3];
console.log(arr.at(1), arr[1]);
// 返回结果:2 2

那问题来了,数组使用at()方法获取选项,和直接使用索引获取有什么区别呢?

区别就在于参数或索引值为负数的时候,直接看例子:

const arr = [1,2,3];
console.log(arr.at(-1), arr[-1]);
// 返回结果:3 undefined

是这样的,当Array.prototype.at()方法的参数是负数的时候,其参数值等于该负数和整个数组长度的和。

因此,在上面的例子中,arr.at(-1)其实等于 arr.at(-1 + 3) => arr.at(2) => 3

这就是最后结果3的由来。

如果负数的绝对值比数组的长度还要大,或者参数是正值,但是超出数组范围,则返回undefined,因此,就会有下面这样的代码运行效果。

const arr = [1,2,3];
console.log(arr.at(-4), arr[-4]);
// 返回结果:undefined undefined

console.log(arr.at(3), arr[3]);
// 返回结果:undefined undefined

三、substring/slice的区别

字符串的substring()slice()方法在绝大数时候是通用的,可以对字符串进行复制。

区别在于下面这两种场景:

  1. substring()的参数为负时,视为0,slice()的允许负数参数,例如:
    'HTML并不简单'.substring(-2)
    // 返回 'HTML并不简单'
    
    'HTML并不简单'.slice(-2)
    // 返回 '简单'
  2. substring()的第一个参数大于第二个时,会自动交换,而slice()的第一个参数大于第二个时,输出空字符串,例如:
    'HTML并不简单'.substring(4, 2)
    // 返回 'ML'
    
    'HTML并不简单'.slice(4, 2)
    // 返回 ''

如果大家无法保证参数的前后大小顺序,则可以考虑使用substring()方法,其余使用,均建议使用slice()方法,原因无他,名称简短更好记忆。

四、结束语

JS中还有很多其他作用类似的方法和写法,这就就不一一举例了。

接下来是扯淡碎碎念时间。

上周五去体检了,和之前几年一样,这个彩照啊,慢得要死。去年就说不来这家,结果今年还来,唉,公司体检那几个单位,家附近就这一个。

好在这一次请假了,时间不急,且早有预期,没有之前几年那么令人抓狂。

小朋友周五秋游,从起床醒来到回家,嘴巴乐呵得就没合上过,去海昌海洋馆看了心心念念的………………奥特曼!这玩意,啧啧啧,真是烧金库。门票150就不说了,就那荧光棒,就是演唱会的那种荧光棒,外面几块钱一个的,你猜这里多少钱一根。超乎你的想象,128块钱一个,128呀!说是给奥特曼什么光的力量复活的,还有披风啥的,都是天价,哦,还有,300多块钱还可以和奥特曼合影5张照片。关键,买的人巨多,我只能说,上海有钱人真多。

周末两天去乡下打卡鱼塘的时候的时候,采购了很多葡萄,都很便宜,5块一斤,最贵的也就8块钱,买了好多,多到都带公司来吃了。

听种葡萄的大叔说,还有一个星期就要下市了,普通,且吃且珍惜。

周末两日钓费都是100元,第一天那个鱼塘,不谈了,难钓的不得了,收获几条野生杂鱼,第2天的就好钓多了,都是长江鳊(翘嘴和鳊鱼杂交品种),不过大风大雨的,做钓体验不怎么好。

这周的话,计划去嘉定的拾光生态去钓混养,周日去壹号钓场去钓鲤鱼,顺便试用几个新饵料。

渔获照片

本文为原创文章,会经常更新知识点以及修正一些错误,因此转载请保留原出处,方便溯源,避免陈旧错误知识的误导,同时有更好的阅读体验。
本文地址:https://www.zhangxinxu.com/wordpress/?p=11387

(本篇完)