技术标签: 隐式转换 运算符 Javascript 表达式 强制转换 javascript web前端复习+面试
1、数值转换
两大类:隐式转换、强制转换
A.隐式转换
特点:无需程序员干预,js会自动完成的类型转换。。
在这里,仅讨论“+”运算符中的隐式转换:2句
算数运算中,一切类型都隐式转为Number类型,在进行计算。
比如——
"2"——2 true/false——1/0
特例:
在“+”运算中,若运算符的任意一边出现字符串,则双方都自动转换为“字符串”类型。此外,“+”运算符也会变为字符串的拼接。
总结——仅影响表达式的运算结果,不影响变量中存储的实际值。
B.强制转换
(1)任意类型——String
var str = x.toString();
js中,一切数据都有toString方法
var str = String(x);——隐式转换
何时使用?
程序在需要时,会自动调用。
(2)任意类型——Number
String to Number——2种
第一种:var n = parseInt(str);
原理:从str开始位置逐个读取每个字符,直到碰到第一个不是数字的字符时,停止读取;
会自动忽略开头碰到的空格。
比如——
var width = "12px";
width +"2px" ——“12px2px”
(1)Number(width) + Number("2px")——NaN
(2)parseInt(width) + parseInt("2px")
"12px" "2px"
12 2 ——14
此时, width = 14+ "px";
var money = $40;——NaN
第二种:var n = parseFloat(str);
原理和parseInt完全一致,但是parseFloat,只认定第一个小数点
比如——
parseFloat("34.56"); ——34.56
parseFloat("34.56.78");——34.56
Number(x) VS parseInt(str)
比如——
Number("12px")——NaN
parseInt("12px") ——12
string to Number ——parseInt
Number(true)——1
parseInt(string(true))——parseInt("true")——NaN
x to Number——Number()
(3)任意类型——Boolean
var bool = Boolean(x); ——隐式转换
当x= ""/ NaN /undefined /null /0 Boolean(x)——false
其余时,为true
类型转换函数总结:
(1)Number——String
Boolean——String
x.toString()/String
(2)String——Number
parseInt(str)
parseFloat(str)
(3)String——Boolean
Number——Boolean
Boolean(x)
(4)Boolean——Number
Number(x)
2、运算符和表达式
程序:让计算机按照人的想法去执行任务。
运算符:程序中模拟人的思维运算或判断的符号。
运算符分类——
(1)算数运算符:“+”、“-”、“*”、“/”、“%”(取余)、“++”、“--”
“%”作用:a、判断奇偶数(n%2)
b、确保一个运算的结果,不超过某个最大值(除数)
“++”使用:
a、情况1——“n++”,先n赋值,再运算++
var n=3;
console.log(n++); //3
console.log(n); //4
b、情况2——“++n”,先运算++,再n赋值
var n=3;
console.log(++n); //4
console.log(n); //4
(2)关系运算符
将两个值进行比较:>、<、>=、<=、==、!=
返回true/false
隐式转换:将所有类型都转为number类型,再比较。
特殊情况:3种
a、两字符串比较
原理:依次PK每一位字符的unicode编号(只要有一位执法,分出大小,就不再比较)
比如:"3">"10"——true
"Smith">"Scott"——true
"m" "c"
109 99
"张东">"张无忌"——false
"东" "无"
19996 26080
b、NaN:NaN和任何数据做大小或等于比较,永远返回false
NaN和任何数据做**不等于**比较,永远返回true
isNaN(num):专门判断num是否是NaN
如果是NaN,返回true,否则返回false
When:今后只要判断一个数值是否是数字或是否是被转为数字,都用isNaN。
如果是数字,返回false,否则,返回true。
c、undefined VS null
undefined==null true
===:全等,首先保证数据类型要相同,其次再比较数值是否相等。
不带隐式转换。
When:只要不希望关系运算中自动隐式转换时。
(3)逻辑运算符
返回值只有两个:true、false
a && b —— true true — true
a || b —— true 任意x — true
笔试题——
var n=10;
var m=10;
var r=n++>10 && ++m>10;
// n++>10 || ++m>10
console.log(r);
console.log(n);
console.log(m);
(4)位运算符——2个
左移:n<<m 将n的二进制,左移m位;
比如——1<<3 ——1* 2的3次方
右移:n>>m 将n的二进制,右移m位
比如——64>>3 ——64/ 2的3次方 ——8
(5)赋值运算符
5个:+=、-=、*=、/=、%=
(6)三元运算符
a ? b : c
例如——计算“平年”还是“闰年”
year%4 ==0 && year%100 !=0 || year%400 ==0 ? "是平年":"是闰年"
文章浏览阅读1.3k次。未写转载于:https://www.cnblogs.com/ikihsiguoyr/p/10372635.html
文章浏览阅读293次。决策表决策表 - 百度百科决策表又称判断表,是一种呈表格状的图形工具,适用于描述处理判断条件较多,各条件又相互组合、有多种决策方案的情况。精确而简洁描述复杂逻辑的方式,将多个条件与这些条件满足后要执行动作相对应。但不同于传统程序语言中的控制语句,决策表能将多个独立的条件和多个动作直接的联系清晰的表示出来决策树决策树 - 百度百科决策树(Decision Tree)是在已知各种情况发生概率的基础上,通过构成决策树来求取净现值的期望值大于等于零的概率,评价项目风险,判断其可行性的决策分析方法,是直观运_决策表 决策树
文章浏览阅读4k次,点赞18次,收藏171次。description: 整理自己看过和待看的一些主要关于图像分割包括其他领域的论文,不定时更新…综述篇Deep learning for cardiac image segmentation: A review [2019]Deep Semantic Segmentation of Natural and Medical Images: A Review [2019]Understanding Deep Learning Techniques for Image Segmentation
文章浏览阅读1.3k次,点赞4次,收藏2次。vue3+Ts项目。
文章浏览阅读848次。在 iOS 上通过 802.11k、802.11r 和 802.11v 实现 Wi-Fi 网络漫游了解 iOS 如何使用 Wi-Fi 网络标准提升客户端漫游性能。iOS 支持在企业级 Wi-Fi 网络上对客户端漫游进行优化。802.11 工作组标准 k、r 和 v 可让客户端在同一网络内更加顺畅地从一个接入点 (AP) 漫游到另一个接入点。802.11k通过创建优..._11v漫游流程 csdn
文章浏览阅读4.8k次。你的分析结果有T值,有sig值,说明你是在进行平均值的比较。也就是你在比较两组数据之间的平均值有没有差异。从具有t值来看,你是在进行T检验。T检验是平均值的比较方法。T检验分为三种方法:1.单一样本t检验(One-samplettest),是用来比较一组数据的平均值和一个数值有无差异。例如,你选取了5个人,测定了他们的身高,要看这五个人的身高平均值是否高于、低于还是等于1.70m,就需要用这个..._sig值计算公式
文章浏览阅读280次,点赞4次,收藏3次。通过使用前端技术HTML+CSS+JavaScript+Vue,后端技术Java+SSM,数据库MySQL5.7,以及开发工具Eclipse或IntelliJ IDEA,Tomcat7.0,JDK1.8,Maven3.3.9,可以实现一个功能完善、操作简便的毕业设计选题管理系统。在数据库管理工具的选择上,使用了Navicat 11,这是一个用户友好且功能强大的数据库管理软件,它支持多种数据库系统,包括MySQL,并提供了图形化界面,使得数据库的管理和维护工作更加便捷。
文章浏览阅读4.7k次。先占个空,以后再详细拆解主要关注与GSM的区别,特别是GRPS是如何通过增加信道和分组交换系统支持数据传输,如何通过新的调制解调技术,增加数据传输的速率的!1. GSM是全球移动通讯系统(Global System for Mobile Communications)的简称2. GPRS是通用分组无线业务(General Packet Radio Service)的简称3. GPRS是在GSM系统基础上发展起来的分组数据承载和传输业务。4. GPRS与GSM......_2g slot
文章浏览阅读10w+次。图像拼接系列相关论文精读Seam Carving for Content-Aware Image ResizingAs-Rigid-As-Possible Shape ManipulationAdaptive As-Natural-As-Possible Image StitchingShape-Preserving Half-Projective Warps for Image StitchingSeam-Driven Image StitchingParallax-tolerant Ima_natural image stitching using depth maps
文章浏览阅读1.6w次,点赞131次,收藏52次。一、基本介绍Java泛型是J2 SE1.5中引入的一个新特性,其本质是参数化类型,也就是说所操作的数据类型被指定为一个参数(type parameter)这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。二、提出背景Java集合(Collection)中元素的类型是多种多样的。例如,有些集合中的元素是Byte类型的,而有些则可能是String类型的,等等。Java允许程序员构建一个元素类型为Object的Collection,其中的元素可以是任何类型在Java S._java基础
文章浏览阅读1.7k次,点赞26次,收藏14次。vue中使用echarts实现省市地图绘制,根据数据在地图上显示柱状图信息;增加涟漪特效动画。本文以吉林省地图为例,来实现吉林省市的地图的绘制。根据数据在地图上显示柱状图信息;增加涟漪特效动画。你也可以显示中国地图或其他身份地图。原理是一样的哦。主要是通过geo地理坐标系组件实现地图绘制。柱状图是利用3个样式(顶部椭圆、中部矩形、底部椭圆)层叠实现的。_vue 市区地图+经纬度自定义显示弹窗详情
文章浏览阅读1.2k次,点赞46次,收藏20次。网络安全等级保护2.0自查表 | 技术部分_网络安全等级保护自查表