你知道Javascript总parseInt的第二个参数吗?

  • • 1. javascript 中 parseInt

      • • 1.1. 基本用法

        • • 1.1.1. 无指定基数(默认十进制)

        • • 1.1.2. 指定基数

      • • 1.2. 特殊情况与注意事项

    • • 2. 扩展:Javascript中json的操作有哪些

      • • 2.1. JSON.stringify()

      • • 2.2. JSON.parse()

      • • 2.3. 直接操作JSON对象

你知道Javascript总parseInt的第二个参数吗?

1. javascript 中 parseInt

在 JavaScript 中,parseInt() 函数是一个内置函数,用于将一个包含整数的字符串解析为相应的整数数值。它主要接收两个参数:

  1. 1. string – 必需。要被解析的字符串。

  2. 2. radix – 可选。表示字符串中数字的基数(进制),即数字系统中使用的符号数。其值必须介于 2 到 36 之间(包括 2 和 36)。如果省略此参数或其值为 0,则 JavaScript 将根据字符串前缀来智能地确定基数。如果没有明确的前缀且省略了 radix 参数,那么默认基数为 10(十进制)。

以下是 parseInt() 函数的一些关键特性及使用示例:

1.1. 基本用法

1.1.1. 无指定基数(默认十进制)

当不提供或忽略 radix 参数时,parseInt 会尝试将字符串解析为十进制整数。如果字符串以可识别的数字开始,它会一直解析到遇到非数字字符为止。

// 十进制数字字符串
parseInt("123"); // 返回 123
parseInt("-456"); // 返回 -456

// 字符串前有空白字符
parseInt("   789"); // 返回 789,空格被忽略

// 非纯数字字符串,只解析开头的有效数字
parseInt("3.14"); // 返回 3,小数点和后面的数字被忽略
parseInt("12abc"); // 返回 12,'abc' 被忽略
parseInt("0x1A"); // 返回 10,以 '0x' 开头被视为十六进制数,但因为没有指定基数,所以按十进制解析

1.1.2. 指定基数

通过提供 radix 参数,可以明确指定字符串所代表数字的基数。这对于处理不同进制(如二进制、八进制、十六进制)的字符串非常有用。

// 二进制(基数为2)
parseInt("1010"2); // 返回 10(二进制 "1010" 对应十进制的 10)

// 八进制(基数为8)
parseInt("077"8); // 返回 63(八进制 "077" 对应十进制的 63)

// 十六进制(基数为16)
parseInt("FF"16); // 返回 255(十六进制 "FF" 对应十进制的 255)

// 注意,对于带有特定前缀的字符串,即使指定了基数,也依然会按照前缀解析
parseInt("0xFF"10); // 返回 255,尽管指定了基数10,但因有 "0x" 前缀,仍按十六进制解析

// 不正确的基数会导致解析失败,返回 NaN
parseInt("101", ¾); // 返回 NaN,因为基数不是 2 到 36 之间的整数

1.2. 特殊情况与注意事项

  • • 空字符串parseInt("") 返回 NaN,因为没有有效的数字可以解析。

  • • 非数字字符开头:如果字符串的第一个字符不能被解析为数字,parseInt 返回 NaN

  • • 数字前缀

    • • 前缀为 "0x" 或 "0X" 表示十六进制数,即使未指定 radix 也会被正确解析。

    • • 前缀为 "0"(且没有 "0x" 或 "0X")可能被解释为八进制数(在某些旧版本的 JavaScript 实现中)。为了避免混淆,建议始终指定 radix 参数。

  • • 浮点数字符串parseInt 只解析整数部分,小数点及其后的部分会被忽略。

  • • 超出范围的数值:如果解析出的整数值超出了 JavaScript 所能表示的整数范围(Number.MAX_SAFE_INTEGER 和 Number.MIN_SAFE_INTEGER),可能会导致精度损失或意外行为。

综上所述,parseInt 是一个强大的工具,用于将字符串转换为整数。正确使用时,需要考虑字符串的内容、预期的进制以及是否需要指定 radix 参数,以确保准确无误地解析数值。

更多详细内容,请微信搜索“前端爱好者, 戳我 查看 。

2. 扩展:Javascript中json的操作有哪些

在JavaScript中,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。

JavaScript提供了原生支持来操作JSON,主要包括以下几种操作:

2.1. JSON.stringify()

  • • 功能:将一个JavaScript值(对象、数组、基本类型等)转换为JSON字符串。

  • • 语法

    JSON.stringify(value[, replacer[, space]])
  • • 参数

    • • value:要转换的JavaScript值。

    • • replacer:可选,可以是一个函数或一个数组,用于控制哪些属性应包含在序列化的JSON字符串中,以及如何转换它们的值。

    • • space:可选,用于美化输出的字符串,指定缩进空格数或字符串(如t)。

  • • 示例

    const person = {
      name"John Doe",
      age30,
      address: {
        street"123 Main St",
        city"New York"
      }
    };

    // 默认序列化
    const jsonStr = JSON.stringify(person);
    console.log(jsonStr); // '{"name":"John Doe","age":30,"address":{"street":"123 Main St","city":"New York"}}'

    // 使用replacer函数过滤属性
    const jsonStrWithReplacer = JSON.stringify(person, (key, value) => {
      if (key === 'age'return undefined// 移除年龄属性
      return value;
    });
    console.log(jsonStrWithReplacer); // '{"name":"John Doe","address":{"street":"123 Main St","city":"New York"}}'

    // 美化输出
    const prettyJsonStr = JSON.stringify(person, null2);
    console.log(prettyJsonStr);
    /* 输出:
     * {
     *   "name": "John Doe",
     *   "age": 30,
     *   "address": {
     *     "street": "123 Main St",
     *     "city": "New York"
     *   }
     * }
     */

2.2. JSON.parse()

  • • 功能:将一个JSON字符串解析为相应的JavaScript值。

  • • 语法

    JSON.parse(text[, reviver])
  • • 参数

    • • text:要解析的JSON字符串。

    • • reviver:可选,一个函数,用于在解析每个键/值对时对其进行处理,返回值将作为新的键/值对替代原来的值。

  • • 示例

    const jsonString = '{"name":"John Doe","age":30,"address":{"street":"123 Main St","city":"New York"}}';

    // 默认解析
    const parsedObj = JSON.parse(jsonString);
    console.log(parsedObj); // { name: 'John Doe', age: 30, address: { street: '123 Main St', city: 'New York' } }

    // 使用reviver函数处理解析后的值
    const parsedObjWithReviver = JSON.parse(jsonString, (key, value) => {
      if (key === 'age'return value + 1// 将年龄加1
      return value;
    });
    console.log(parsedObjWithReviver); // { name: 'John Doe', age: 31, address: { street: '123 Main St', city: 'New York' } }

2.3. 直接操作JSON对象

  • • 一旦JSON字符串被解析为JavaScript对象,你就可以像操作普通对象一样操作它,包括访问、修改、添加和删除属性,遍历对象和数组,以及使用其他JavaScript对象操作方法和函数。

const jsonObject = JSON.parse(jsonString);

// 访问属性
console.log(jsonObject.name); // "John Doe"

// 修改属性
jsonObject.name = "Jane Doe";
jsonObject.address.city = "Los Angeles";

// 添加属性
jsonObject.phone = "555-1234";

// 删除属性
delete jsonObject.age;

// 遍历对象
for (const key in jsonObject) {
  console.log(key, jsonObject[key]);
}

// 使用Array方法处理数组属性
if (Array.isArray(jsonObject.hobbies)) {
  jsonObject.hobbies.push('reading');
}

JavaScript中对JSON的主要操作包括序列化(JSON.stringify())和反序列化(JSON.parse()),以及解析后的JSON对象的常规JavaScript对象操作。

这些操作使得在JavaScript程序中方便地处理JSON数据成为可能。


原文始发于微信公众号(前端爱好者):你知道Javascript总parseInt的第二个参数吗?

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/288702.html

(0)
服务端技术精选的头像服务端技术精选

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!