先介绍一下 typeof 的使用方法:

typeof(mix)   或者  typeof  mix

其中 mix 可以是任何数据类型

js有六种数据类型:

五种简单数据类型,又叫基本数据类型,分别为:Number,String,Boolean,Null,Undefined;

一种基本数据类型:Object

typeof 的返回值有六种:

number、string、boolean、object、 function和underfined

注意:返回值是一个字符串类型

特别的:

  • typeof(null)==="object";//true
  • typeof(NaN)==="number";//true

类型转换:

一、显示类型转换

  1. Number(mix)  :把mix转化成数字类型  可以转为数字的就转化为相应的数字,不能转化的就转为NaN        其中:
    Number(true) //1;Number(false)//0;Number(null) //0;Number(undefined) //NaN
  2. parseInt(mix,radix) :把mix转化成整数 除了数字和能转化为数字的字符串,其他都转化为NaN,当mix为字符串时,则从第一位一直到非数字截止,即该方法可以截断                                                                                                  radix是将mix看成radix进制  来进行转化  若有小数部分则是直接去掉

    注意:parseInt(true) //NaN; parseInt(false) //NaN;在把字符串转化为数字时,parseInt()可以截断,但Number()不能  =》  parseInt("123qqq")//123;Number("123qqq")//NaN

  3. parseFloat(number) :转化成 浮点类型  从一位开始看,到除了第一个点以外的非数字位截止
  4. Boolean(mix) : 转化为boolean类型
  5. String(mix) :转化为字符串类型

mix.toString(radix)  与String(mix)用法不同   且undefined和null不能使用  mix.toString();    radix是目标值的进制   将mix转化成radix进制。

注:如将二进制10100转化为16进制

过程是 先parseInt()转化为10进制  然后在toString()转化为16进制

var num=10100;

var test=parseInt(num,2);

num.toString(16);

2、隐式类型转化(内部隐式的调用的都是显示类型的方法)

    1. isNaN():内部隐式调用Number()进行类型转化,再判断Number()返回的值是否是NaN。如:isNaN(null)//false   isNaN(underfined)//true
    2. ++(加加)    --(减减)  +(正)  - (负):内部隐式调用Number()转化后再进行相应计算
    3. +(加号)  当加号两边有一个是字符串的话,就会调用String,然后进行字符串的拼接
    4. -    *    /    %    内部隐式调用Number()进行类型后再计算
    5. <(小于)    >(大于)      <=(小于等于)     >=(大于等于)    字符串和数字比  会调用Number   转化为数字
    6. ==       !=           1==‘1’//true         undefined==null     1>2<3;//true      NaN==NaN;//false NaN不等于任何东西 包括本身
    7. &&(与)   ||(或)    !(非)    &&    ||  虽然有转化 但返回的依然是原值

      &&:先看第一个表达式转化成布尔值的值,如果为真,那么看第二个表达式转化为布尔值的值,。。。。依次进行,直到碰到假;如果只有两个表达式,则会在第一个表达式转化为布尔值为真时,直接返回第二个表达式的值;否则返回第一个表达式的值进行赋值

      var a = 1 && 2+2;//4

      var b = 0 && 2+2;//0

      ||:与&&类似,但先看第一个表达式转化为布尔值后的值,如果为真,直接返回第一个表达式的值,如果为假,则接着往下进行判断

      判断真假只是决定是否接着“往下走”,但返回的仍是其本身的值,而不是转化的布尔值

注:  使用未声明的变量只有一种情况 不报错  就是   typeof(a);//undefined

因为 typeof  返回的是一个字符串            typeof(typeof(a));//String   【面试题】

一些示例:

typeof(a);//undefined
typeof(undefined);//undefined
typeof(NaN);//number
typeof(null);//object
var a="123abc";
typeof(+a);//numberr
typeof(!!a);//boolean
typeof(a+"");//string
1=="1";//true
NaN==NaN;//false
NaN==undefined;//false
''11''+11;//
1==='1';//false parseInt('123abc');//
typeof(typeof(a));//string

js中的类型转换的更多相关文章

  1. JS中String类型转换Date类型 并 计算时间差

    JS中String类型转换Date类型 1.比较常用的方法,但繁琐,参考如下:主要使用Date的构造方法:Date(int year , int month , int day)<script& ...

  2. JS中数据类型转换

    JS中数据类型转换汇总 JS中的数据类型分为 [基本数据类型] 数字 number 字符串 string 布尔 boolean 空 null 未定义 undefined [引用数据类型] 对象 obj ...

  3. JS中强制类型转换

    JavaScript提供了3种强制类型转换的方法 一.Boolean()方法 该方法将指定的参数转换成布尔型.Boolean(object).参数object可以是字符串对象.数值对象.DOM对象等. ...

  4. JS中的各种类型转换规则(转)

    JS中的类型转换非常恶心,大家都懂的,不过该学还是要学. 今天看犀牛书看到了转换规则,总结出来. X转字符串.数字.布尔值 X表示各种类型的值,直接上图: 值 转数字 转字符串 转布尔值 undefi ...

  5. JS中的数据类型和转换

    一.JS中的数据类型 js中的数据类型可以分为五种:number .string .boolean. underfine .null. number:数字类型 ,整型浮点型都包括. string:字符 ...

  6. 关于JS中涉及的常用类型转换及运算符表达式

    JS中的常用类型转换(一般用强制转换):1.强制转为整数:parseInt:写法:x = parseInt(x); 2.强制转换位小为:parseFloat:写法:x = parseFloat(x); ...

  7. js | JavaScript中数据类型转换总结

    转载 在js中,数据类型转换分为显式数据类型转换和隐式数据类型转换. 1, 显式数据类型转换 a:转数字: 1)Number转换: 代码: var a = “123”; a = Number(a); ...

  8. JavaScript基础&实战(2)js中的强制类型转换、运算符、关系运算符、逻辑运算符、条件运算符

    文章目录 1.强制类型转换Number 1.1 代码 1.2 测试结果 2.进制表示 2.1 代码 2.2 测试结果 3.强制类型转换为Boolea 3.1 代码 3.2 测试结果 4.运算符 4.1 ...

  9. JavaScript中数据类型转换总结

    JavaScript中数据类型转换总结 在js中,数据类型转换分为显式数据类型转换和隐式数据类型转换. 1, 显式数据类型转换 a:转数字: 1)Number转换: 代码: var a = " ...

随机推荐

  1. 芝麻HTTP:Python爬虫实战之抓取淘宝MM照片

    本篇目标 1.抓取淘宝MM的姓名,头像,年龄 2.抓取每一个MM的资料简介以及写真图片 3.把每一个MM的写真图片按照文件夹保存到本地 4.熟悉文件保存的过程 1.URL的格式 在这里我们用到的URL ...

  2. R语言实现对基因组SNV进行注释

    很多时候,我们需要对取出的SNV进行注释,这个时候可能会在R上进行注释,通常注释文件都含有Chr(染色体).Start(开始位点).End(结束位点).Description(描述),而我们的SNV文 ...

  3. EF Core下利用Mysql进行数据存储在并发访问下的数据同步问题

    小故事 在开始讲这篇文章之前,我们来说一个小故事,纯素虚构(真实的存钱逻辑并非如此) 小刘发工资后,赶忙拿着现金去银行,准备把钱存起来,而与此同时,小刘的老婆刘嫂知道小刘的品性,知道他发工资的日子,也 ...

  4. 基于数据库的自动化生成工具,自动生成JavaBean、数据库文档、框架代码等(v5.8.8版)

    TableGo v5.8.8版震撼发布,此次版本更新如下:          1.新增两个扩展字段,用于生成自定义模板时使用.          2.自定义模板新增模板目录,可以选择不同分类目录下的模 ...

  5. 初学 Java Web 开发,从 Servlet 开发

    1. 基本要求:Java 编程基础 有良好的 Java 语言编程基础,这是必须的,在讨论 Web 开发技术时提了一个 Java 编程基础的问题会被鄙视的. 2. 环境准备 (Eclipse + Tom ...

  6. 【BZOJ4736】温暖会指引我们前行(Link-Cut Tree)

    [BZOJ4736]温暖会指引我们前行(Link-Cut Tree) ##题面 神TM题面是UOJ的 题解 LCT傻逼维护最大生成树 不会的可以去做一做魔法森林 #include<iostrea ...

  7. Bzoj4872: [Shoi2017]分手是祝愿

    题面 Bzoj Sol 首先从大向小,能关就关显然是最优 然后 设\(f[i]\)表示剩下最优要按i个开关的期望步数,倒推过来就是 \[ f[i]=f[i-1]*i*inv[n]+f[i+1]*(n- ...

  8. [POI2014]KUR-Couriers

    题意 给一个数列,每次询问一个区间内有没有一个数出现次数超过一半 题解 主席树,一个数出现次数>一半,这个区间内只有这一个数满足,那么主席树直接维护所有数的出现次数,直接在树上二分查询 # in ...

  9. [BZOJ1604] [Usaco2008 Open] Cow Neighborhoods 奶牛的邻居 (queue & set)

    Description 了解奶牛们的人都知道,奶牛喜欢成群结队.观察约翰的N(1≤N≤100000)只奶牛,你会发现她们已经结成了几个“群”.每只奶牛在吃草的时候有一个独一无二的位置坐标Xi,Yi(l ...

  10. Nginx负载均衡——基础功能

    熟悉Nginx的小伙伴都知道,Nginx是一个非常好的负载均衡器.除了用的非常普遍的Http负载均衡,Nginx还可以实现Email,FastCGI的负载均衡,甚至可以支持基于Tcp/UDP协议的各种 ...