关闭

javascript中的typeof返回的数据类型_以及强制/隐式类型转换

时间: 2018-04-17阅读: 1301标签: 数据

由于js为弱类型语言拥有动态类型,这意味着相同的变量可用作不同的类型。  

 

typeof返回的数据类型

typeof 运算符返回一个用来表示表达式的数据类型的字符串,目前typeof返回的字符串有以下这些: 

“undefined” ——未定义
“boolean”——布尔值
“string”——字符串
“number”——数值
“object”—— 对象,数组和null
“function”——函数
“symbol”—— 独一无二的值    (ES6)  

对于数字类型的操作数而言, typeof 返回的值是 number,在JavaScript中,特殊的数字类型还有几种: 

Infinity                //表示无穷大特殊值
NaN            //特殊的非数字值
Number.MAX_VALUE     //可表示的最大数字
Number.MIN_VALUE    // 可表示的最小数字(与零最接近)
Number.NaN        //特殊的非数字值
Number.POSITIVE_INFINITY //表示正无穷大的特殊值
Number.NEGATIVE_INFINITY  //表示负无穷大的特殊值


强制类型转换  

Number(参数)把任何类型转换成数值类型

parseInt(参数1,参数2)将字符串转换成整数

parseFloat()将字符串转换成浮点数字

string(参数):可以将任何类型转换成字符串

Boolean()可以将任何类型的值转换成布尔值


隐式类型转换  

(1).四则运算

加法运算符+是双目运算符,只要其中一个是string类型,表达式的值便是一个String。

对于其他的四则运算,只有其中一个是Number类型,表达式的便是一个Number。

对于非法字符的情况通常会返回NaN:'1'*'a'    // => NaN,这是因为parseInt(a)值为NaN,1*NaN还是NaN

3 + true; // 4
"hello"2" + 3; // "23"
1 + 2 + "3"; // "33"

var x = NaN;
x === NaN; // false

isNaN("foo"); // true
isNaN(undefined); // true
isNaN({}); // true
isNaN({ valueOf: "foo" }); // true


(2).判断语句

判断语句中的判断条件需要是 Boolean类型,所以条件表达式会被隐式转换为Boolean。其转换规则则同Boolean的构造函数。比如:

var obj = {};
if(obj){
  while(obj);
}


(3).Native代码调用

JavaScript宿主环境都会提供大量的对象,它们往往不少通过JavaScript来实现的。JavaScript给这些函数传入的参数也会进行隐式转换。例如BOM提供的alert方法接受String类型的参数:

alert({a:1});  //=>[object Object]


站长推荐

1.云服务推荐: 国内主流云服务商,各类云产品的最新活动,优惠券领取。地址:阿里云腾讯云华为云

2.广告联盟: 整理了目前主流的广告联盟平台,如果你有流量,可以作为参考选择适合你的平台点击进入

链接: http://www.fly63.com/article/detial/655

关闭

html页面加载海量数据的实现

页面上有个空的无序列表节点 ul ,其 id 为 list-with-big-data ,现需要往列表插入 10w 个 li ,每个列表项的文本内容可自行定义,且要求当每个 li 被单击时,通过 alert 显示列表项内的文本内容。

如何使用 jq 接收 blob 数据

目前 jq 用的人还是挺多的,在一些简单的促销 h5 页面,用 jq 去实现一些简单的功能还是比较方便的。本文展示如何用 JQ 去请求一个 blob 对象的 img 图片并渲染到页面上

前端使用Node爬数据

爬虫类的需求,基本上在各个公司都会有,难免就会落在前端开发的头上。今天我们就来看看 Node 如何爬数据。其实抓取数据对于前端来说,就是 ajax 请求一个接口,只不过返回值有 text/html

vue数据初始化--initState

Vue 实例在建立的时候会运行一系列的初始化操作,而在这些初始化操作里面,和数据绑定关联最大的是 initState。首先,来看一下他的代码:

广东IDC网运营广州南翔云数据中心正式挂牌广州移动机房

2019年9月,中国移动广州南翔(华德)云数据中心机房正式揭牌!中国移动广州南翔云数据中心作为广东移动最新的T3+级别机房,总规模达到2600多个机柜,并已投产运营数月

js算法_判断数字是否为素数/质数

质数又称素数。指在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数。比如100以内共25个,js实现代码如下。

cookie和session区别是什么?

HTTP无状态协议,是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

Mock.js使用

Mock.js 是一款前端开发中拦截Ajax请求再生成随机数据响应的工具.可以用来模拟服务器响应. 优点是非常简单方便, 无侵入性, 基本覆盖常用的接口数据类型.大概记录下使用过程, 详细使用可以参见Mock文档 Mock Wiki

ES6 Proxy与数据劫持

随着前端界的空前繁荣,各种框架横空出世,包括各类mvvm框架百家争鸣,比如Anglar、Vue、React等等,它们最大的优点就是可以实现数据绑定,再也不需要手动进行DOM操作了,它们实现的原理也基本上是脏检查或数据劫持

ES6中Set、Map数据结构

ES6 提供了一种类似于数组的新的数据结构 Set。它的成员的值都是唯一的,没有重复的值。WeakSet与Set数据结构类似,但是有2个不同点。1、WeakSet 的成员只能是对象,而不能是其他类型的值

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!