2021-09-15 JavaScript中强制将某个未知类型变量转成基础数据类型
为什么要强制将某个未知类型变量转成基础数据类型?
- 实际业务场景里,一个变量的数据是否合法或符合预期,会影响到自己的代码的可靠性。比如在别人使用自己写的自定义函数,而自己写的函数中的一些值是需要对入参严格限制为数字的,同时自己想,如果别人输入错误,就使用一些默认值。
//自己写的代码---名为[自定义函数集.js];
const 自定义函数 = (未知类型入参一)=>{
const 内部数字变量一 = 根据未知类型入参一转成的数字;//在这里,需要根据[未知类型入参一]初始化变量;
根据内部数字变量一执行的代码块;//在这里执行一系列操作;
return 内部数字变量一;
}
export 自定义函数;
//别人的代码;
import 自定义函数集 from '自定义函数集.js';
自定义函数集.自定义函数('虽然传的不是数字,但想要你当成我传的是数字')
转化:
- 强制转成数字number:
//1. 使用[Number(String(未知类型的变量)) || NaN时转成的值];
var 未知类型的变量 = Symbol('未知类型的变量')
const 数字 = Number(String(未知类型的变量)) || 0;//如果数字为NaN,则转成为0;
//先转成字符串,是为了Symbol类型的值也能不报错变成NaN;
/* 示例:
var 未知类型的变量 = {}
var 数字变量 = Number(String(未知类型的变量)) || 0;//0;
var 未知类型的变量 = [1]
var 数字变量 = Number(String(未知类型的变量)) || 0;//1;
var 未知类型的变量 = [6]
var 数字变量 = Number(String(未知类型的变量)) || 0;//6;
var 未知类型的变量 = Symbol('665')
var 数字变量 = Number(String(未知类型的变量)) || 0;//0;
var 未知类型的变量 = '665'
var 数字变量 = Number(String(未知类型的变量)) || 0;//665;
*/
说明:
- 此文长期更新。
- 此文主要是自己通过之前负责的项目及自己思考得出的。所以尽量不用专业术语,只考虑好理解。
- 使用中文变量,是为了读者更好理解,实际项目里,目前最好还是使用字母。因为中文有可能会有一些未知错误,也不方便一些人的理解。因为变量名及类型是最好的注释,用中文更精准地传意,不必花费时间特意去说明。
- 如果有不对的,请在2022-01-01前通知我,我及时改一下。在这之后就算有错,估计也不会特意去改了。
参考:
2021-09-15 JavaScript中强制将某个未知类型变量转成基础数据类型的更多相关文章
- JavaScript中登录名的正则表达式及解析(0基础)
简言 在JavaScript中,经常会用到正则表达式来进行模式匹配.例如,登录名验证,密码强度验证,字符串查找或替换等操作.现在就开始吧,零基础写出你的第一个正则表达式! 在做用户注册时,都会用到登录 ...
- javascript中强制类型转换
javascript开发过程中,强制类型转换一般发生在条件判断和==运算符.其他情况,发生的类型转换(与这两种情况也是基本类似,属于万变不离其宗的范畴),暂不讨论. == 双等运算符 考虑代码: a ...
- 在JavaScript中进行文件处理,第一部分:基础
译注:原文是<JavaScript高级程序设计>的作者Nicholas Zakas写的,本翻译纯属为自己学习而做,仅供参考.原文链接:这里 很多年前,我在一次Goole面试被问到,如何在w ...
- javascript中的字符串对象和数组对象
1.javascript的对象的概念 在javascript中,除了null和undefined以处,其他的数据类型都被定义成了对象 也可以用创建对象的方法定义变量,string,math,array ...
- javascript中的字符串对象
1.javascript的对象的概念 在javascript中,除了null和undefined以处,其他的数据类型都被定义成了对象 也可以用创建对象的方法定义变量,string,math,array ...
- javascript中6种基本数据类型详解
javascript中有5中数据类型(也称为基本数据类型):Undefined.Null.Boolean.Number和String,还有一种复杂数据类型——object,object本质是由一组键值 ...
- javascript中逻辑运算(||,&&,!)
作为一个后端开发的程序员,一直就对JavaScript情有独钟,作为一门前后端通吃的语言,必须赞一下.而且之前很长一段时间都有在做JavaScript,一路都是和ie8死磕,磕完又找低版本的谷歌磕,坑 ...
- 详细理解javascript中的强制类型转换
将值从一种类型转换为另一种类型通常称为类型转换,这是显式的情况:隐式的情况称为强制类型转换,JavaScript 中的强制类型转换总是返回标量基本类型值,如字符串.数字和布尔值. 如何理解: 类型转换 ...
- JavaScript中的ParseInt("08")和“09”返回0的原因分析及解决办法
今天在程序中出现一个bugger ,调试了好久,最后才发现,原来是这个问题. 做了一个实验: alert(parseInt("01")),当这个里面的值为01====>07时 ...
- 谈 JavaScript 中的强制类型转换 (2. 应用篇)
这一部分内容是承接上一篇的, 建议先阅读谈 JavaScript 中的强制类型转换 (1. 基础篇) 前两章讨论了基本数据类型和基本包装类型的关系, 以及两个在类型转换中十分重要的方法: valueO ...
随机推荐
- [转帖]Linux下AWK、SED、GREP、FIND命令详解
https://www.jianshu.com/p/d54e0359db01 AWK AWK是一个优良的文本处理工具,Linux和Unix环境中现有的功能最强大的数据处理引擎之一. 语法 awk [选 ...
- [1036]kvm虚拟机访问时提示no route to host分析
环境 宿主机: IP: 10.110.136.43 版本:Kylin Linux Advanced Server release V10 (Sword) KVM vm: IP: 10.110.136. ...
- [知乎]2019-nCov的致死率问题
https://www.zhihu.com/question/369630554/answer/998649507 知乎 dr.李的文章 跟自己一开始的理解很相似.. 个人也认为死亡率会高于2% 武汉 ...
- 【小测试】golang中数组边界检查的开销大约是1.87%~3.12%
作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 对比C/C++, golang等类型安全的语言会在数组访问 ...
- 每日一库:cobra 简介
当你需要为你的 Go 项目创建一个强大的命令行工具时,你可能会遇到许多挑战,比如如何定义命令.标志和参数,如何生成详细的帮助文档,如何支持子命令等等.为了解决这些问题,github.com/spf13 ...
- 语义检索系统:基于无监督预训练语义索引召回:SimCSE、Diffcse
基于无监督预训练语义索引召回:SimCSE.Diffcse 语义索引(可通俗理解为向量索引)技术是搜索引擎.推荐系统.广告系统在召回阶段的核心技术之一.语义索引模型的目标是:给定输入文本,模型可以从海 ...
- 语言模型的预训练[6]:思维链(Chain-of-thought,CoT)定义原理详解、Zero-shot CoT、Few-shot CoT 以及在LLM上应用
大语言模型的预训练[6]:思维链(Chain-of-thought,CoT)定义原理详解.Zero-shot CoT.Few-shot CoT 以及在LLM上应用 1.思维链定义 背景 在 2017- ...
- 【六】gym搭建自己环境升级版设计,动态障碍------强化学习
相关文章: [一]gym环境安装以及安装遇到的错误解决 [二]gym初次入门一学就会-简明教程 [三]gym简单画图 [四]gym搭建自己的环境,全网最详细版本,3分钟你就学会了! [五]gym搭建自 ...
- 8.6 STARTUPINFO
STARTUPINFO 结构体,可以用来指定新进程的主窗口外观风格.背景颜色.标题等信息,也可以用来实现反调试技术.通常情况下,我们可以将STARTUPINFO结构体中的dwFlags成员设置为STA ...
- MySQL创建, 修改,删除用户密码
MySQL创建, 修改,删除用户密码 创建用新户名密码 创建用新户名密码: create user 'test1'@'localhost' identified by 'test1'; 修改用户名密码 ...