花潮论坛

搜索
热搜: 活动 交友 discuz
查看: 33|回复: 6

JS : 'a' ** 0 = 1

[复制链接]
  • TA的每日心情
    奋斗
    2026-3-14 12:47
  • 签到天数: 1758 天

    [LV.Master]伴坛终老

    3143

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

    发表于 2026-3-8 08:23 | 显示全部楼层 |阅读模式

    请马上登录,朋友们都在花潮里等着你哦:)

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x

    先看看JS运算式子 ——

    'a' ** 0 = 1

    'a' ** 0 = 1 这样的计算式子并不符合数学约定,但在 JS 中可以正常进行计算,答案为 1 。式子中, 'a' 是一个字符,可以是别的任意字符,例如 '我''得瑟''Let it go' 等等都行; ** 是指数运算符,例如求 x 的 y 次方写成 x ** y,等价于 JS 的 Math 方法 Math.pow(x, y)0 在式子中是次方的意思。

    console.log('a' ** 0); // → 1
    console.log(Math.pow('a', 0)); // → 1

    从数学的角度出发,任何非0的数的0次方都等于 1 。上述式子中的 'a'不是数字,理论上不能参与运算,在 JS 中则可以,因为 JS 的数据类型是动态类型即 Dynamically Typed,因此字符串参与数学运算时 JS 一样正常执行:

    console.log('2px' - 10); // → NaN

    NaN 是一个特殊的数字类型,意为 Not a number,不是一个数字。不是一个数字但属于数字类型,特殊的,于是字符串就可以堂而皇之地参与数学运算。

    number 类型代表整数和浮点数,介于 -(25 3-1) ~ (25 3-1) 之间,超出这个范围的数字可以使用后来增加的 BigInt 类型表示以追求运算的精准度(IE不支持)。

    求字符串的0次方其实是求 NaN 这个特殊数字的零次方。在JS中,特殊数字还有一个 Infinity,无穷大 ∞。NaN 和 Infinity 既然都是数字,那么,它们的0次方当然就是 1,这是 JS 的运算逻辑。

    无穷大怎么来?

    console.log(1 / 0); //→ Infinity

    钱不多没有关系,只要是大于0的任意数字,如果0个人平分,你就是比亿万富翁还厉害的主。但千万别小于0,否则你将比亿万负翁要惨到无法形容。0除以0这事别干,NaN 是唯一答案,NaN 这货是一个特殊的数字且具有粘连性,求其0次方你会拿到1块大洋,然而其它任何运算都是 NaN,很遗憾特殊数字不意味着是天文数字。

    最后出个题:执行语句 console.log(0 ** 0); 得到什么?

    【提示】在数学中,由于诸多原因,0的0次方未被统一定义。但是,JS老哥是个狠人,为了保持运算一致性,为了遵循 IEEE 754 标准的相关约定……

    评分

    参与人数 1威望 +50 金钱 +100 经验 +50 收起 理由
    红影 + 50 + 100 + 50 匠心独运,细节精致入微!

    查看全部评分

  • TA的每日心情
    开心
    2025-12-1 20:32
  • 签到天数: 1052 天

    [LV.10]以坛为家III

    1895

    主题

    32万

    回帖

    38万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮美女虎龙狗猪多彩人生星月交辉海样胸怀火热情怀优雅迷人神秘浪漫缤纷心情草莓情怀蝴蝶情怀心曲飞扬星星情怀七彩绚丽活泼开朗女儿情怀相遇之美一往情深花好月圆心香一瓣紫色情节飞龙在天金剪刀天籁妙音妙笔生花风雨同行我心永远天长地久幸福快乐绚丽缤纷喜乐安康中秋征文周年庆指尖上的流年舞会之星分析(喊冤)章总结章杀人王小强章最佳杀刺临屏写诗七夕诗钟活动第五届风云第六届风云情人节花潮管理

    发表于 2026-3-8 19:38 | 显示全部楼层
    console.log(0 ** 0);应该也是1,既然console.log('a' ** 0); // → 1,'a' 是任意字符,当然也可以是0啊
     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-12-1 20:32
  • 签到天数: 1052 天

    [LV.10]以坛为家III

    1895

    主题

    32万

    回帖

    38万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮美女虎龙狗猪多彩人生星月交辉海样胸怀火热情怀优雅迷人神秘浪漫缤纷心情草莓情怀蝴蝶情怀心曲飞扬星星情怀七彩绚丽活泼开朗女儿情怀相遇之美一往情深花好月圆心香一瓣紫色情节飞龙在天金剪刀天籁妙音妙笔生花风雨同行我心永远天长地久幸福快乐绚丽缤纷喜乐安康中秋征文周年庆指尖上的流年舞会之星分析(喊冤)章总结章杀人王小强章最佳杀刺临屏写诗七夕诗钟活动第五届风云第六届风云情人节花潮管理

    发表于 2026-3-8 19:41 | 显示全部楼层
    console.log('a' ** 2); 应该是 NaN吧?
     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-12-1 20:32
  • 签到天数: 1052 天

    [LV.10]以坛为家III

    1895

    主题

    32万

    回帖

    38万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮美女虎龙狗猪多彩人生星月交辉海样胸怀火热情怀优雅迷人神秘浪漫缤纷心情草莓情怀蝴蝶情怀心曲飞扬星星情怀七彩绚丽活泼开朗女儿情怀相遇之美一往情深花好月圆心香一瓣紫色情节飞龙在天金剪刀天籁妙音妙笔生花风雨同行我心永远天长地久幸福快乐绚丽缤纷喜乐安康中秋征文周年庆指尖上的流年舞会之星分析(喊冤)章总结章杀人王小强章最佳杀刺临屏写诗七夕诗钟活动第五届风云第六届风云情人节花潮管理

    发表于 2026-3-8 19:41 | 显示全部楼层
    无论什么的0次方都是1,JS真够狠的。这个以前一点不知道,学习了,感谢黑黑的讲解
     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2026-3-14 12:47
  • 签到天数: 1758 天

    [LV.Master]伴坛终老

    3143

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2026-3-8 20:36 | 显示全部楼层
    红影 发表于 2026-3-8 19:38
    console.log(0 ** 0);应该也是1,既然console.log('a' ** 0); // → 1,'a' 是任意字符,当然也可以是0啊{: ...

    正确,理科生对JS运算逻辑的理解还是到位的
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2026-3-14 12:47
  • 签到天数: 1758 天

    [LV.Master]伴坛终老

    3143

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2026-3-8 20:37 | 显示全部楼层
    红影 发表于 2026-3-8 19:41
    console.log('a' ** 2); 应该是 NaN吧?

    对。数学能力没减
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2026-3-14 12:47
  • 签到天数: 1758 天

    [LV.Master]伴坛终老

    3143

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2026-3-8 20:37 | 显示全部楼层
    红影 发表于 2026-3-8 19:41
    无论什么的0次方都是1,JS真够狠的。这个以前一点不知道,学习了,感谢黑黑的讲解

    其它编程语言不一定这样,JS 相对特殊
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    小黑屋|手机版|Archiver|服务支持:DZ动力|huachaowang.com Inc. ( 蜀ICP备17032287号-1 )

    GMT+8, 2026-3-14 23:23 , Processed in 0.072582 second(s), 25 queries .

    Powered by Discuz! X3.4

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表