ES6中的数值拓展、async函数和迭代器

目录

1.数值拓展

[2.async 函数](#2.async 函数)

[3.for in、 for of、 forEach三者之间的区别?](#3.for in、 for of、 forEach三者之间的区别?)

4.generator函数


1.数值拓展

Number.isFinite 只针对有效数值返回true 对于非有效数值返回false 不做隐式转换

Number.isNaN 只对于NaN返回true 对于非NaN返回false

Number.parseInt 将其他数据类型转为number类型 取整

Number.parseFloat 将其他数据类型转为number类型 保留小数

Number.interge 检测数值是否是整数

javascript 复制代码
// isFinite 检测值是否是有效值 隐式转换 
console.log(isFinite(null));
console.log(isFinite(""));
console.log(isFinite('10'));
console.log(isFinite(true));
console.log(isFinite([]));
console.log(isFinite('hello'/10));
// isNaN 判断是否是一个数字 是数字返回false 其他返回true
console.log(isNaN(10));
console.log(isNaN('hello'/10));
console.log(isNaN('hello'));

// Number.isFinite  检测有效值 对于有效值返回true 对于无效值返回false 不做隐式转换
//  Number.isNaN 对于非NaN一律返回false 只有对NaN才返回true
// isNaN 只对数字返回false 其他都返回true
console.log(Number.isFinite(null));
console.log(Number.isFinite(''));
console.log(Number.isFinite('10'));
console.log(Number.isFinite(true));
console.log(Number.isFinite(10));

console.log(Number.isNaN('hello'/10));
console.log(Number.isNaN('hello'));//只对NaN返回true 其他都是false
console.log(isNaN('hello'));//只对数字返回false  其他都返回true
console.log(Number.isNaN(10));


// parseInt parseFloat 
console.log(Number.parseInt('10.1'));
console.log(Number.parseInt('10.123'));
console.log(Number.parseFloat('12.123'));
console.log(Number.parseFloat('12.123#'));

// 检测是否是整数  对于整数返回true  对于非整数返回false
console.log(Number.isInteger('12.1'));
console.log(Number.isInteger(12));
console.log(Number.isInteger(12.1));
console.log(Number.isInteger('12'));

2.async 函数

异步编程解决方法 内部封装了generator函数 异步编程同步解决 简化promise api链式调用

async function getAll(){

let res = await get();

}

html 复制代码
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <script src="https://cdn.bootcdn.net/ajax/libs/axios/1.5.0/axios.min.js"></script>
</head>

<body>
  <script>
    /**
     * 异步编程解决方案  异步编程同步处理 简化promise API一种解决方案 
     * 内部封装了generator函数 与await配合使用 
     * Promise{}
    */
    async function findAll() {
      let res = await axios.get('自己的服务器地址');
        console.log(res, '获取响应1');
      // 捕获异常和错误
      try {
        let res = await axios.get('自己的服务器地址');
        console.log(res, '获取响应111111111');
      } catch (error) {
        throw new Error(error,'请求失败')
      } finally {
        console.log('最终执行')
      }
      axios.get().then().catch() 
      axios.get('自己的服务器地址').then(res=>{
        console.log(res.data,'获取响应')
      }).catch(error=>{
        console.log(error,'444');
      })
    }
    findAll();

  </script>
</body>

</html>

3.for in、 for of、 forEach三者之间的区别?

1.forEach是遍历数组、set、map 实例方法

2.for in 循环遍历数组、对象、字符串、类数组对象

3.for of 只能遍历实现了迭代器接口对象 对象不可以直接使用for...of遍历

4.generator函数

异步编程解决方法 function 和函数名之间使用*隔开

内部封装多个状态,一个yield就是一个状态 执行generator函数得到一个迭代器对象

迭代器对象调用next方法 可以运行内部状态

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <script>
    /**
     * generator函数异步编程解决方案 内部封装了多个状态 使用yiled表示每一个状态 
     * function和函数名之间使用* 隔开 调用generator函数会得到一个迭代器对象 
     * 迭代器对象调用next方法可以执行每一个状态 
    */
    function * generator(){
      // generator函数内部使用yield表示一个状态 一个yield就是一个状态 一个yield就是一个代码运行节点
      yield '1';
      yield '2';
      yield '3';
      return '4'
      // generator函数最后一个状态可以使用return返回
    }
    let res = generator();//调用generator函数得到一个迭代器对象
    console.log(res.next());//调用一次next方法执行一个状态
    console.log(res.next());//调用一次next方法执行一个状态
    console.log(res.next());//调用一次next方法执行一个状态
    console.log(res.next());//调用一次next方法执行一个状态

  //  function foo(){
  //     // 执行代码 返回
  //     return 1
  //     // 执行代码 返回
  //     return 2 
  //     // 执行代码 返回
  //     return 3
  //  }
  //  console.log(foo());
  </script>
</body>
</html>
相关推荐
鬼手点金7 小时前
nanoGPT/nanochat 能做出 DeepSeek/Qwen 这样的大模型吗?
服务器·前端·javascript·bug·openclaw
软件技术NINI8 小时前
美妆商城html+Css+js 4页
javascript·css·html
蛋蛋的就会顺顺的8 小时前
hot100 p0——栈,贪心算法,动态规划
java·前端·javascript·算法·leetcode·力扣
程序员Sunday8 小时前
TypeScript 的 any、unknown、never 有什么区别?
前端·面试·typescript
朱涛的自习室8 小时前
70 美金的 Beyond Compare,我让 Gemini 4 和 DeepSeek 造个开源免费版(Day 2)
android·前端·人工智能
码艺-Alimjan9 小时前
Tauri 源码备份 · 打包 & 解压 总结,源码收集之路
前端·javascript·vue.js
小马不起床9 小时前
零基础玩转 FastAPI_11:前端后台管理页面
前端·状态模式·fastapi
死磕音视频9 小时前
让小模型做选择题:限定候选项并读取 logits 概率的入门实践(附 Python 代码)
开发语言·python·大模型·文本分类·transformers
子非鱼a10 小时前
【文件上传】一个普普通通的edu16
前端
美狐美颜SDK开放平台10 小时前
直播APP如何实现美白滤镜功能?视频美颜SDK技术开发方案详解
前端·数据库·人工智能·音视频·美颜sdk·直播美颜sdk·视频美颜sdk