显式强制类型转换

1. 日期显式转换为数字
  1. +new Date; //1478845373322
javascript有个奇特的语法,即构造函数没有参数时可以不用带()。
不过最好还是使用ES5中新加入的 静态方法:Date.now()。
2. ~运算符
按位运算符只适用于32位整数,运算符会强制操作数使用32位格式。这是通过抽象操作ToInt32实现的。
ToInt32 首先执行ToNumber 强制类型转换,比如“123”会先转换为123,然后再执行ToInt32。

按位运算符有6个: & 按位与     | 按位或     ^ 按位异或     ~ 取反     >> 右移     << 左移

但这严格来说并不是强制类型转换(因为返回值类型并没有发生变化),但按位运算符(例如 | 或~)和某些数字一起使用时会产生类似强制类型转换的效果,返回另外的数字。
例如 | 运算符 0|x仅执行ToInt32转换。但以下特殊字符无法以32格式呈现,因此ToInt32返回0。
  1. 0|-0;//0
  2. 0|NaN;//0
  3. 0|Infinity;//0
  4. 0|-Infinity;//0
~ 首先将值强制类型转换为32位数字,然后执行按位运算符操作“非”(对每个字符进行反转)。
另外一种说法,源自早期的计算机科学和离散数学:~返回2的补码。
~x等同于 -(x+1);
  1. ~5; //-6
3. 字位截除 ~~
~~中第一个 ~ 执行ToInt32并反转字位,然后第二个 ~ 再进行一次字位反转,将所有的字位反转为原值,最后得到的仍是ToInt32的结果。
~~只适用于32位数字,且它对负数的处理与Math.floor(...)不同。
  1. Math.floor(-88.9); //-89
  2. ~~-88.9; //-88
~~可以将值截除为一个32位整数,x|0也可以。但最好是使用~~,出于运算符优先级的考虑。
4. 显式解析数字字符串
解析允许字符串中含有非数字字符串,从左到右解析,遇到非数字字符则停止,而转换不允许出现非数字字符,否则会失败并返回NaN。
  1. var a="56";
  2. var b="56px";
  3. Number(a); //56
  4. parseInt(a); //56
  5. Number(b); //NaN
  6. parseInt(b); //56
ES5之前的parseInt32(...) 有一个坑,如果没有第二个参数来指定转换的基数,它会根据字符串的第一个字符来自行决定基数。
如果第一个字符是x或者X,则转换为十六进制数字。如果是0,则转换为八进制数字。
ES5开始,parseInt32(...) 默认转换为十进制。
5. 显式转换为布尔值  Boolean(...)
一元运算符!显式的将值类型转换为布尔值,但同时会将真值转换为假值,假值转换为真值。所以显式强制类型转换为布尔值常用的做法是!!,第二个!会将结果反转为原值。
  1. var a="0";
  2. var b=[];
  3. var c={};
  4. !!a; //true
  5. !!b; //true
  6. !!c; //true
下面这段代码:
  1. var a=56;
  2. var b=a?true:false;
a 首先被强制转换为布尔值才能进行条件判断,成为“显式的隐式”。建议使用Boolean(a)和!!a来进行显式的强制类型转换。


来自为知笔记(Wiz)


转载于:https://www.cnblogs.com/cheemon/p/6054550.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/285542.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【ArcGIS风暴】ArcGIS Editor for OSM中文教程(2):下载及加载OSM数据

本文讲解在ArcGIS中借助OpenStreetMap工具下载并加载OSM数据。 文章目录 1. 下载OSM数据2. 加载OSM数据1. 下载OSM数据 在工具箱中双击Download OSM Data(XAPI)工具。 Download URL:http://www.overpass-api.de/api/xapi_meta? Downlaod Extent:与图层lanzhou相同

Object.observe将不加入到ES7

先请看 Object.observe 的 API Object.observe(obj, callback[, acceptList])它用来监听对象的变化&#xff0c;当给该对象添加属性&#xff0c;修改属性时都会被依次记录下来 看一个示例 var person {} Object.observe(person, function(arr) {var change arr[0]console.log…

Kafka学习征途:.NET Core操作Kafka

【Kafka】| 总结/Edison Zhou1可用的Kafka .NET客户端作为一个.NET Developer&#xff0c;自然想要在.NET项目中集成Kafka实现发布订阅功能。那么&#xff0c;目前可用的Kafka客户端有哪些呢&#xff1f;目前.NET圈子主流使用的是 Confluent.Kafkaconfluent-kafka-dotnet : htt…

C语言试题107之判断 101至200 之间有多少个素数,并输出所有素数。

✅作者简介:大家好我是码莎拉蒂,CSDN博客专家🥇🥇🥇 📃个人主页:个人主页 🔥系列专栏:C语言试题200例 💬推荐一款模拟面试、刷题神器👉 点击跳转进入网站 1、题目 题目:判断 101至200 之间有多少个素数,并输出所有素数 分析:判断素数的方法:用一个数分…

C语言将十进制输出二进制、八进制、十六进制的方法总结

文章目录 方法一:直接输出方法二:itoa函数方法一:直接输出 C语言中,控制printf函数输出格式的是格式字符,printf没有直接打出2进制数的格式符,直接打出16进制的格式符是x格式符,即%x。 printf函数中输出的格式为printf("<格式化字符串>", <参量表&…

[Android] 修改ImageView的图片颜色

有两种方法&#xff1a; 方法1&#xff1a; ImageView imageView (ImageView) findViewById(R.id.arrow_image); Drawable tipsArrow imageView.getDrawable(); tipsArrow.setColorFilter(mContext.getResources().getColor(R.color.red_bg1), PorterDuf…

四叉树算法

2019独角兽企业重金招聘Python工程师标准>>> title: 四叉树算法 date: 2016-1-11 15:10 categories: IOS tags: 算法 小小程序猿我的博客&#xff1a;http://daycoding.com 转载&#xff1a;http://blog.csdn.net/zhanxinhang/article/details/6706217 高德iOS聚合…

2019年中国教育信息化行业研究报告

2019年中国教育信息化行业研究报告 教育行业丨研究报告 本文转自&#xff1a;艾瑞咨询 核心摘要&#xff1a; 教育信息化2.0时代&#xff0c;教育相关政府/学校以更开放的姿态对待社会各类业态的进入&#xff0c;共建共享优质教育资源&#xff0c;提升教育公平与教育质量。同…

C语言试题109之将一个正整数分解质因数。例如:输入 90,打印出 90=2乘3乘3乘5

✅作者简介:大家好我是码莎拉蒂,CSDN博客专家🥇🥇🥇 📃个人主页:个人主页 🔥系列专栏:C语言试题200例 💬推荐一款模拟面试、刷题神器👉 点击跳转进入网站 1、题目 题目:将一个正整数分解质因数。例如:输入 90,打印出 90=233*5。 分析:对 n 进行分解质因…

【ArcGIS遇上Python】使用add-in向导开发ArcGIS插件(1):add-in工具介绍及安装

文章目录 addin介绍addin开发方式Python Add-In开发addin下载addin安装基于ArcObject/ArcGIS Engine的Add-In开发addin介绍 ArcGIS从10.0开始支持addin(ArcGIS软件中又叫作加载项)的方式进行插件制作。相对于以往9.x系列,addin的无论是从使用或者编写都更加方便快捷。通过开…

dotnet 使用 Crossgen2 对 DLL 进行 ReadyToRun 提升启动性能

我对几个应用进行严格的启动性能评估&#xff0c;对比了在 .NET Framework 和 dotnet 6 下的应用启动性能&#xff0c;非常符合预期的可以看到&#xff0c;在用户的设备上&#xff0c;经过了 NGen 之后的 .NET Framework 可以提供非常优越的启动性能&#xff0c;再加上 .NET Fr…

使用myeclipse建立maven项目(重要)

maven是管理项目的&#xff0c;myeclipse是编写代码的。第一次写项目都要配置好多东西&#xff0c;很麻烦&#xff0c;now 来看看怎样新建一个maven项目。 工具/原料 myeclipsemaven方法/步骤 因为教程使用的maven是自己下载配置的&#xff0c;并没有使用myeclipse自带的&#…

LeetCode 每日一题 Day 22 || 枚举(数学方法)/二分

1954. 收集足够苹果的最小花园周长 给你一个用无限二维网格表示的花园&#xff0c;每一个 整数坐标处都有一棵苹果树。整数坐标 (i, j) 处的苹果树有 |i| |j| 个苹果。 你将会买下正中心坐标是 (0, 0) 的一块 正方形土地 &#xff0c;且每条边都与两条坐标轴之一平行。 给你…

不用@微信官网了,用python给自己的微信头像加个小国旗

国旗LOGO&#xff08;png透明格式&#xff09;&#xff1a; 微信头像 合成结果&#xff1a; import base64 import os import re from io import BytesIO from PIL import Image import tkinter as tk from tkinter import filedialog# 水印图片 可以自己指定 #markImageImage…

getContentResolver().query()方法selection参数使用详解(转)

如何在managedQuery()和getContentResolver().query()方法中实现结果去重 有时候&#xff0c;我们需要对查询的数据库结果进行去重。在SQL中我们可以通过distinct关键字实现&#xff0c;但是当我们使用android提供的managedQuery()或getContentResolver().query()方法对数据库进…

C语言试题106之有一对兔子问题

✅作者简介:大家好我是码莎拉蒂,CSDN博客专家🥇🥇🥇 📃个人主页:个人主页 🔥系列专栏:C语言试题200例 💬推荐一款模拟面试、刷题神器👉 点击跳转进入网站 1、题目 题目:有一对兔子,从出生后第 3 个月起每个月都生一对兔子,小兔子长到第三个月 后每个月又…

【C#程序设计】教学讲义——第二章:简单C#程序设计

教学目录 2.1 面向对象的概念2.2 建立简单的应用程序2.3 窗体和Label控件2.4 文本框-属性2.5 按钮控件本章小结2.1 面向对象的概念 2.1.1 对象和类 1.对象 对象是客观世界中对象的模型化。对象是有着特殊数据(属性)与操作(行为)的实体,对象的操作(行为)称为方法。 程…

Blazor University (34)表单 —— 获得表单状态

原文链接&#xff1a;https://blazor-university.com/forms/accessing-form-state/获得表单状态源代码[1]有时&#xff0c;我们需要获得 <EditForm> 子内容中的表单状态。最常见的用途是当我们需要访问输入的 CSS 类时&#xff0c;指示输入是否被修改或有效/无效。例如&a…

[转]c# 中间件 的扩展模型(.net webapi/.net Core 的 MiddleWare 处理模型)

在学习 asp.net WebApi 或者asp.net Core 的时候&#xff0c;它们管道的处理模型跟 asp.net MVC/WebForm 的管道模型是不一样的。 asp.net WebApi 或者asp.net Core 他们使用了一种叫做“中间件”的处理模型&#xff0c;相对于传统管道模型&#xff0c;剔除了很多非必要的处理…

AIX 环境下遇到Device Busy问题

IBM AIX v5.3操作系统环境下在对网络或网卡进行操作过程中经常遇到"Device Busy"而终止操作例如:#rmdev -l ent1遇到如下返回信息Method error (/etc/methods/ucfgdevice):0514-062 Cant perform the requested function because the speciafield.device is busy. 解…