为什么js里"10000"<"8000"为true

如题,js不是弱类型语言么,字符串相减不应该自动转换为数字类型运算么

慕的地8271018
浏览 794回答 1
1回答

皈依舞

如果两个数字型的字符串相减,或者其中一个为字符串时,那么会自动转换为数字类型的进行运算:'10000'&nbsp;-&nbsp;'8000'&nbsp;//&nbsp;2000 10000&nbsp;-&nbsp;'8000'&nbsp;//&nbsp;2000 10000&nbsp;>&nbsp;'8000'&nbsp;//&nbsp;true但如果是两个都是数字型的字符串进行比较,那就不会自动转换为数字类型,会按照纯字符串的比较规则进行比较:从字符串左边开始,一次比较每个字符(比较每个字符对应的ASCII值),直接出现差异、或者其中一个串结束为止比如 '10000' 和 '8000' 这两个字符串比较, 字符'8'对应的ASCII值比字符'1'对应的ASCII值要大,则比较直接结束,最后的结果则是'8000'>'10000'
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Html5