• [C1进阶之路 JS基础] 常见的内置函数


    请添加图片描述



    ⚔️ 任务目标

    理解并掌握JavaScript中常见的内置函数


    ⚔️ 任务背景

      JavaScript是一个基于原型链的面向对象的语言,很多其他语言常见的函数会以对象上的各种方法存在,例如数组对象的各种方法,字符串对象的各种方法等。即便如此,JavaScript还是有一些顶层的内置函数,了解这些常见的内置函数对我们进行JavaScript编码有很大的帮助。


    ⚔️ 任务内容


    🔰 isNaN

    用来确定一个值是否为NaN。NaN表示不是一个数字。如果isNaN函数的参数不是Number类型, isNaN函数会首先尝试将这个参数转换为数值,然后才会对转换后的结果是否是NaN进行判断。因此,对于能被强制转换为有效的非NaN数值来说(空字符串和布尔值分别会被强制转换为数值0和1),返回false值也许会让人感觉莫名其妙。比如说,空字符串就明显“不是数值(not a number)”。这种怪异行为起源于:"不是数值(not a number)"在基于IEEE-754数值的浮点计算体制中代表了一种特定的含义。isNaN函数其实等同于回答了这样一个问题:被测试的值在被强制转换成数值时会不会返回IEEE-754​中所谓的“不是数值(not a number)”。

    isNaN('abc') // 返回值:true 因为字符串'abc'不是一个数字 
    isNaN('12.23') // 返回值:false 因为字符串'12.23'是一个数字 
    
    isNaN(NaN);       // true
    isNaN(undefined); // true
    isNaN({});        // true
    
    isNaN(true);      // false
    isNaN(null);      // false
    isNaN(37);        // false
    
    // strings
    isNaN("37");      // false: 可以被转换成数值37
    isNaN("37.37");   // false: 可以被转换成数值37.37
    isNaN("37,5");    // true
    isNaN('123ABC');  // true:  parseInt("123ABC")的结果是 123, 但是Number("123ABC")结果是 NaN
    isNaN("");        // false: 空字符串被转换成0
    isNaN(" ");       // false: 包含空格的字符串被转换成0
    
    // dates
    isNaN(new Date());                // false
    isNaN(new Date().toString());     // true
    
    isNaN("blabla")   // true: "blabla"不能转换成数值
                      // 转换成数值失败, 返回NaN
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    🔰 eval

    eval函数会将传入的字符串当做 JavaScript 代码进行执行。这是一个十分危险的函数,一般情况不建议使用。

    	var a = eval("2+2") 
    	console.log(a) 
    	// 预期输出:4 
    	// 这里eval把字符串"2+2",当成js代码执行,得到结果4 
    	
    	eval("console.log('hello world')") 
    	// 预期输出:hello world 
    	// 这里eval把字符串"console.log('hello world')",当成js代码执行,打印输出:hello world
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    🔰 parseFloat

    根据给定的参数返回其对应的浮点数。

    parseFloat(3.14); 
    parseFloat('3.14'); 
    parseFloat(' 3.14 '); 
    parseFloat('314e-2'); 
    parseFloat('0.0314E+2'); 
    parseFloat('3.14some non-digit characters'); 
    // 以上的返回值都是3.14
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    🔰 parseInt

    解析一个字符串并返回指定基数的十进制整数。

    parseInt("0xF", 16); 
    parseInt("F", 16); 
    parseInt("17", 8); 
    parseInt(021, 8); 
    parseInt("015", 10); // parseInt(015, 8); 返回 13 parseInt(15.99, 10); 
    parseInt("15,123", 10); 
    parseInt("FXX123", 16); 
    parseInt("1111", 2); 
    parseInt("15 * 3", 10); 
    parseInt("15e2", 10); 
    parseInt("15px", 10); 
    parseInt("12", 13); // 以上都返回15,第二个参数表示基数(可以理解为进制)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    ⚔️ 刷题练习

    ✏️ 题目1

    要想以下JavaScript代码运行符合预期,空格处应该填什么?

    if (isNaN('.67') === ___) { 
        console.log('hello') 
    } 
    
    预期输出: 
    hello 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    💎  false


    ✏️ 题目2

    要想以下JavaScript代码运行符合预期,空格处应该填什么整数?

    console.log(parseInt("21", ____))
    预期输出: 
    17
    
    • 1
    • 2
    • 3

    💎  8


    ✏️ 题目3

    以下的JavaScript代码的预期输出是?

    console.log(parseFloat('8.9a89bd'))
    预期输出:
    ____
    
    • 1
    • 2
    • 3

    💎  8.9


    ✏️ 题目4

    以下的JavaScript代码的预期输出是?

    if (isNaN('3e4') === false) {
        console.log('Hello')
    } else {
        console.log('World')
    }
    
    预期输出: 
    ____
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    💎  Hello


    需知:资料来源于C1认证
    请添加图片描述

  • 相关阅读:
    不要动 WindowsApps 文件夹的权限以及更新 win10 版本
    【图神经网络学习笔记系列】01-Graph Attention Networks 学习笔记
    Redis源码学习:ziplist的数据结构和连锁更新问题
    数据分析-numpy1
    【微信小程序】WXSS模板样式
    ol(openlayers)使用记录
    Ubuntu Anaconda 环境下删除 protobuf
    【Linux】从零开始学习Linux基本指令(二)
    ShaderLab实现序列帧动画
    内存管理(五)——内存回收
  • 原文地址:https://blog.csdn.net/weixin_50369395/article/details/124965875