A.数据类型强制转换

1、转换为数值类型

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

A.如果是布尔值,false为0,true为1

  var a=false;alert(Number(a)); a=0

B.如果是数字,转换成为本身。将无意义的后导0去掉    

  var a=3.2;alert(Number(a)); a=3.2

C.如果Null转换为0

  var a=null;alert(Number(a)); a=0

D.如果是undefined 转换为NaN not a number

  var a;alert(Number(a)); a=NaN

E.如果对象则会先调用对象的 valueOf(),如果valueOf()返回的是NaN,然后再调用对象的toString()

  var a={toString:function(){return 3;},valueOf:function(){return"abc";}}; alert(Number(a)) a=3

F.如果是字符串

  1.如果字符串当中只有数字,转换为10进制(忽略前导0和后导0)

    var a="0123.0";alert(Number(a)); a=123

  2.如果是有效的规范的浮点型,转换为浮点值(忽略前导0和后导0)

    var a="023.110";alert(Number(a)); a=23.11

  3.如果是空字符串,则转换为0

    var a="";alert(Number(a)); a=0

  4.如果是其他的值,返回NaN

    var a="chen";alert(Number(a)); a=NaN

parseInt(string,radix)  将字符串转换为整数

string 必需。要被解析的字符串。

radix 可选。表示要解析的数字的基数。该值介于 2 ~ 36 之间。如果省略该参数或其值为 0,则数字将以 10 为基础来解析。如果它以 “0x” 或 “0X” 开头,将以 16 为基数。如果该参数小于 2 或者大于 36,则 parseInt() 将返回 NaN。

A.如果一个字符串只包含数字,则以10进制的方式转换为整型

  var a="12.2";alert(parseInt(a)); a=12

B.他会自动忽略字符串前面的空格,知道找到第一个非空的数值字符串,直到解析到第一个非数值的字符串结束。

  var a=" 2a2";alert(parseInt(a)); a=2

  var a=" 21a2";alert(parseInt(a)); a=21

  C.如果字符串的第一个字符不是空格、数字、-,那么返回NaN

    var a=" a21a2";alert(parseInt(a)); a=NaN

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

A.字符串当中的.只有第一个有效,其他的都是无效的。

  var a="12.2";alert(parseInt(a)); a=12.2

B.如果字符串是一个有效的整数,他返回的是整数,不会返回浮点数。

  var a="12";alert(parseInt(a)); a=12

  var a="12.0";alert(parseInt(a)); a=12

2、转换为数值类型

1. String(参数):可以将任何的类型转换为字符串

  null 结果 null

  undefined 结果 undefined

  true 结果 true

  false 结果 false

  1 结果 1

  数值类型 结果 本身的字符串

2.toString()---调用的格式:对象.toString()。作用是将对象以字符串的方式来表示

  array.toString() 结果 由,分割的字符串

    var arr=[a,b,c];alert(arr.toString()); a,b,c

  Boolean.toString() 结果 两个值 true false

    var a=true;alert(arr.toString()); true

  String.toString() 结果 返回本身

    var a="陈";alert(arr.toString()); 陈

  Number.toString(radix) 结果 返回本身的字符串形式

    var a=12;alert(arr.toString()); 12

    radix 可选。规定表示数字的基数,使 2 ~ 36 之间的整数。若省略该参数,则使用基数 10。但是要注意,如果该参数是 10 以外的其他值,则 ECMAScript 标准允许实现返回任意值。

  注意:null和undefined没有toString()方法

3、转换为布尔类型:Boolean()可以将任何类型的值转换为布尔值

转换为假: ""、 0、 NaN 、undefined、 false

其他的全部都转换为真

B.数据类型隐式转换

1.函数类

a.isNaN()

  该函数会对参数进行隐式的Number()转换,如果转换不成功则返回true;

  var a='a23';alert(isNaN(a)); true

  var a='23';alert(isNaN(a)); false

b.alert()输出的内容隐式的转换为字符串

  var a='23';alert(isNaN(a)); 23

2.运算符类

a.算数运算符 (- * / %)

如果操作数不是数值, 将会隐式的调用Number()函数,按照这个函数的转换规则进行转换,如果转换不成功,整个表达式返回NaN

var a='a23';var b='b23';alert(a+b); a23b23

var a='23';var b='bc';alert(a*b); NaN

*********加号(+)***********

*.如果操作数都是数值,然后进行相加

var a='2';var b='3';alert(a*b); 5

*.任何数据类型和字符串相加,都会隐私的调用他们的toString()方法,然后返回他们拼接的结果。

var a='2b';var b='c3';alert(a*b); 2bc3

*.如果操作数都是布尔值,那么进行Number()转换,false为0,true为1,进行相加。

var a=true;var b=false;alert(a+b); 1

var a=true;var b=true;alert(a+b); 2

b.关系运算符

关系运算符的操作数可以是任何类型,如果操作数不是数值类型,将会隐式的转换

1.运算的结果都是布尔值(ture;false)

2.都是字符串的时候,会转换成ASCII码再比较;多个字符串只比较首个,首个相等再比较下一个。

  var a='abv';var b='aba';alert(a>b);结果ture.

  ASCII码:a=a; -> b=b; -> v>a;

3.都是数值正常比较

4.当一个是字符串,一个为数值的时候;会把字符串转化为数值类型,然后进行比较,如果不能转换为数值类型,则会返回NaN,返回false

5.unfinished null

6.如果两个都是数值型字符串,那么他们也只是比较第一个。

  var a='223';var b='31';alert(a>b); == false

7.一个数值和布尔值比较,会把布尔值转化为数值后再较。

  false=0;true=1

c.等性运算符 (== !=)

会对操作数隐式的转换后再比较值

(1)如果其中至少有一个是布尔值,那么会隐式的调用Number()进行转换,然后比较。

(2)如果一个为字符串。另一个为数值,那么会隐式的调用Number()对字符串进行转换,如果转换不成功,则返回false;

(3) undefined == null

  (a) 比较字符串的时候是比较他们的ASCII码是否相等

  (b) 比较两个数值的时候是比较他们的数值是否相等

  (c) 比较函数的时候,判断他们的位置是否相等。

d.逻辑运算符

A. 放在表达式里面用于判断。

B. 给变量赋值

  var a= b && c

  如果一个运算数是对象,另一个是隐式的调用Boolean()函数,返回该对象。

  如果两个运算数都是对象,返回第二个对象。

  如果某个运算数是 null,返回 null。

  如果某个运算数是 NaN,返回 NaN。

  如果某个运算数是 undefined,发生错误。

  var a=b ||c

  如果一个运算数是对象,并且该对象左边的运算数隐式的调用Boolean()函数 值为 false,则返回该对象。

  如果两个运算数都是对象,返回第一个对象。

  如果最后一个运算数是 null,并且其他运算数值均为 false,则返回 null。

  如果最后一个运算数是 NaN,并且其他运算数值均为 false,则返回 NaN。

  如果某个运算数是 undefined,发生错误。

3、语句类

if(表达式){}else{}

格式: var 变量= Boolean expression?真值:假值

while(){}

if语句和三元表达式里面的表达式会隐式的调用Boolean()函数,按照这个函数的转换规则,转换为相应的布尔值

javascript笔记整理(数据类型强制/隐式转换 )的更多相关文章

  1. JavaScript的六种数据类型与隐式转换

    一.六种数据类型 javascript的数据类型包括: (1)基本数据类型:number.string.boolean.null.undefined (2)对象:object object又包括Fun ...

  2. javascript深入浅出——学习笔记(六种数据类型和隐式转换)

    在慕课之前学过JS深入浅出,最近发现很多东西都记不太清楚了,再复习一遍好了,感觉这个课程真的超级棒的,做做笔记,再添加一些学习内容

  3. oracle数据类型及其隐式转换

    oracle有三种最基本的数据类型,即字符型.数值型.日期型. oracle提供的单行函数中,针对不同的数据类型,提供大量实用的函数,同时提供一系列数据类型转换函数,如下: 1)to_char     ...

  4. 数据类型,隐式转换以及json,对象,引用类型,预解析 视频教程

    随便看看,需要有一点一点基础. 链接:http://pan.baidu.com/s/1c20pcOC 密码:xq2x

  5. js中的数据类型隐式转换的三种情况

    js的数据类型隐式转换主要分为三种情况: 1. 转换为boolean类型 2. 转换为number类型 3. 转换为string类型 转换为boolean类型 数据在 逻辑判断 和 逻辑运算 之中会隐 ...

  6. SQL Server有意思的数据类型隐式转换问题

    写这篇文章的时候,还真不知道如何取名,也不知道这个该如何将其归类.这个是同事遇到的一个案例,案例比较复杂,这里抽丝剥茧,仅仅构造一个简单的案例来展现一下这个问题.我们先构造测试数据,如下所示: CRE ...

  7. JavaScript学习笔记——数据类型强制转换和隐式转换

    javascript数据类型强制转换 一.转换为数值类型 Number(参数) 把任何的类型转换为数值类型 A.如果是布尔值,false为0,true为1 B.如果是数字,转换成为本身.将无意义的后导 ...

  8. JavaScript复习之--javascript数据类型隐式转换

    JavaScript数据类型隐式转换.一,函数类    isNaN()    该函数会对参数进行隐式的Number()转换,如果转换不成功则返回true.    alert()    输出的内容隐式的 ...

  9. Web | JavaScript的引用数据类型强制转换类型

    我在这里主要的想提下的是JavaScript中的引用类型进行强制转换类型.因为对于基本数据类型的变换大多都是雷同的,很容易熟知,但是引用数据类型有一点小插曲. JavaScript的引用类型主要为对象 ...

随机推荐

  1. 一致性算法--Raft

    分布式一致性算法--Raft 前面一篇文章讲了Paxos协议,这篇文章讲它的姊妹篇Raft协议,相对于Paxos协议,Raft协议更为简单,也更容易工程实现.有关Raft协议和工程实现可以参考这个链接 ...

  2. 多种EDA软件的鼠标增强工具EDAHelper

    最新版本(unicode版本,各种语言环境显示中文)下载地址:http://www.jyxtec.com/edahelper/EDAHelper-2.1.13.7z 繁体版:http://www.jy ...

  3. File中操作路径的API(转)

    这几天一直在搞Java,模板引擎系列和程序猿执业修养系列都暂停了,在Java上忙的不亦乐乎!由于对Java还不太熟悉,经历了各种纠结终于完成了任务.以下是关于Java获取当前目录的方法的备忘录. 原文 ...

  4. oracle序列详解

    tyle="margin:20px 0px 0px; font-size:14px; line-height:26px; font-family:Arial"> 序列: 是o ...

  5. linux 命令之sar——监视系统状态

    摘要:在进行系统或者内核测试的时候,我们经常需要观察cpu利用率,缓冲区使用情况,文件读写情况等等.在linux系统下,我们可以用sar命令来达到这个要求. sar 命令行的常用格式: sar [op ...

  6. 深入浅出 JSTL

    JSLT标签库,是日常开发经常使用的,也是众多标签中性能最好的.这个算是一个java程序员的一个基本功吧. JSP Standard Tag Library (JSTL) 的规范完成于2002年7月, ...

  7. C与C++ 无参函数的区别

    在<C++ 编程思想>:“关于无参函数声明,C与C++有很大的差别.在C语言中,声明int fun1(),意味着一个可以有任意数目和类型的函数:而在C++中,指的却是一个没有参数的函数”. ...

  8. POJ2728 最小比率生成树/0-1分数规划/二分/迭代(迭代不会)

    用01分数规划 + prime + 二分 竟然2950MS惊险的过了QAQ 前提是在TLE了好几次下过的 = = 题目意思:有n个村庄,村庄在不同坐标和海拔,现在要对所有村庄供水,只要两个村庄之间有一 ...

  9. 转:js包装DOM对象

    我们在日常的应用中,使用Javascript大多数时间都是在用DOM ,以致于很多人都有一种看法就是DOM==JS,虽然这种看法是错误的,但是也可以说明DOM的重要性. 这就导致了我们在写JS的时候, ...

  10. python 字符串处理

    介绍字符串相关的:比较,截取,替换,长度,连接,反转,编码,格式化,查找,复制,大小写,分割等操作 什么是字符串 字符串 字符串或串(String)是由数字.字母.下划线组成的一串字符.一般记为 s= ...