当前位置: 首页 > news >正文

8.20 pre day bug

pre-bug1

分号省略

这些语句的分隔规则会导致一些意想不到的情形,如以下的一个示例;

 let m = n + f(b+c).toString()

但该语句最终会被解析为:

 let m = n + f(a+b).toString();
 returntrue

一定会被解析成

 return;true;

pre-bug2

Math.random()与Math.floor()

Math.random()`方法是一个非常实用的内置函数,它被用来生成一个介于0(包含)和1(不包含)之间的随机浮点数,范围即 [0,1)

console.log(Math.random());

0.13560024799871395

0.004448119445554122

0.5884970635904845

Math.floor() 函数总是返回小于等于一个给定数字的最大整数

console.log(Math.floor(Math.random()));

0

console.log(Math.floor(Math.random()*10));

7

0

5

8

讓亂數乘上最大值 max 無條件捨去,得到的值區間會是 0~(max-1)

Math.floor(Math.random() * max)

加上 min ,得到值的區間為 min ~ (max-1+min)

Math.floor(Math.random() * max ) + min;

但我們要的區間值為 min ~ max ,所以 (max -1 + min) 必須寫成 (max -1 + min)+1-min ,所以最終寫法如下:

Math.floor(Math.random()*(max-min+1))+min;

pre-bug3

JS 中单引号和双引号无任何区别,二者均用于表示字符串字面量。 单引号和双引号混合使用时,内层引号将被视为字符串的一部分。 如果不使用单引号包含双引号或者双引号包含单引号,那么需要反斜杠对引号进行转义。 单引号和双引号之间的字符串可以相加。

pre-bug4

JavaScript 提升是指解释器在执行代码之前,似乎将函数、变量、类或导入的声明移动到其作用域的顶部的过程———MDN

let

let x = 1;if (x === 1) {let x = 2;console.log(x);// Expected output: 2
}console.log(x);
// Expected output: 1

let 声明的变量的作用域是最靠近并包含 let 声明的以下花括号闭合语法结构的一个:

  • 块语句
  • switch 语句
  • try...catch 语句
  • let 位于其开头的 for 语句之一的主体
  • 函数主体
  • 类静态初始化块

var

var x = 1;if (x === 1) {var x = 2;console.log(x);// Expected output: 2
}console.log(x);
// Expected output: 2

var 声明的变量的作用域是最靠近并包含 var 语句的以下花括号闭合语法结构的一个:

  • 函数主体
  • 类静态初始化块

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 记忆化搜索与状态压缩:优化递归与动态规划的利器
  • 《python语言程序设计》2018版第7章第06题代数:平方根 设计一个名为QuadraticEquation类
  • Verilog刷题笔记54
  • PowerShell 一键配置IP
  • TMS核心架构与功能模块解析
  • Java-一个接口查询没有值,需要多次调用直到有值,怎么解决?
  • python——数据分析
  • 短视频SDK解决方案,Flutter赋能,跨平台无缝体验
  • Docker私人学习笔记
  • python——concurrent.futures
  • SAP凭证分割【Document Splitting】
  • wsl2 airsim wairing for connect (Windows11 UE4.27)问题解决
  • 惠海H4312 dcdc同步整流降压恒压IC 30V 40V转3.3V/5V/12V小体积大电流单片机供电
  • Zimg:轻量级图片服务器的高性能解决方案
  • C# Stack
  • 【vuex入门系列02】mutation接收单个参数和多个参数
  • 【翻译】babel对TC39装饰器草案的实现
  • Android路由框架AnnoRouter:使用Java接口来定义路由跳转
  • Centos6.8 使用rpm安装mysql5.7
  •  D - 粉碎叛乱F - 其他起义
  • java2019面试题北京
  • PaddlePaddle-GitHub的正确打开姿势
  • quasar-framework cnodejs社区
  • React的组件模式
  • SpringBoot 实战 (三) | 配置文件详解
  • vue+element后台管理系统,从后端获取路由表,并正常渲染
  • vue2.0项目引入element-ui
  • Webpack4 学习笔记 - 01:webpack的安装和简单配置
  • 从零开始在ubuntu上搭建node开发环境
  • 高程读书笔记 第六章 面向对象程序设计
  • 那些年我们用过的显示性能指标
  • 排序(1):冒泡排序
  • 前端之Sass/Scss实战笔记
  • 区块链将重新定义世界
  • 《码出高效》学习笔记与书中错误记录
  • #预处理和函数的对比以及条件编译
  • %3cli%3e连接html页面,html+canvas实现屏幕截取
  • (003)SlickEdit Unity的补全
  • (007)XHTML文档之标题——h1~h6
  • (2024,Vision-LSTM,ViL,xLSTM,ViT,ViM,双向扫描)xLSTM 作为通用视觉骨干
  • (C#)一个最简单的链表类
  • (el-Transfer)操作(不使用 ts):Element-plus 中 Select 组件动态设置 options 值需求的解决过程
  • (LeetCode C++)盛最多水的容器
  • (附源码)ssm码农论坛 毕业设计 231126
  • (区间dp) (经典例题) 石子合并
  • (十三)Flink SQL
  • (文章复现)基于主从博弈的售电商多元零售套餐设计与多级市场购电策略
  • (转)母版页和相对路径
  • (转)为C# Windows服务添加安装程序
  • *Algs4-1.5.25随机网格的倍率测试-(未读懂题)
  • *ST京蓝入股力合节能 着力绿色智慧城市服务
  • .NET 4.0中的泛型协变和反变
  • .net core 6 使用注解自动注入实例,无需构造注入 autowrite4net
  • .net redis定时_一场由fork引发的超时,让我们重新探讨了Redis的抖动问题
  • .net 反编译_.net反编译的相关问题