JavaScript_day05

day05内容

学习目标
1.其他数据类型到number类型的转换parseInt
2.其他数据类型到number类型的转换parseFloat
3.在不同类型的值中的算术运算符+
4.流程控制语句 if

1.parseInt()

  1. 如果转换的值是null,undefined,boolean,number
    parseInt(true); //NaN
    parseInt(false); //NaN
    parseInt(null); //NaN
    parseInt(undefined);//NaN
    parseInt(10); //10 如果是整数值,原样输出
    parseInt(10.3); //10 如果是小数,舍去小数点一级后面的内容
  2. 如果是字符串:
    parseInt(“123”); //123;如果仅包含数值,转换为对应的数值
    parseInt(“234.1”);//234;小数点后面的数值省略
    parseInt("+12.1");//12; 首位为符号位,其余为为数值,转换为整数
    parseInt(“0xa”); //10; 如果仅包含十六进制格式,转为为对应的十进制的值
    parseInt(“010”); //10; 【注意!】不会当做八进制被解析,结果为10
    parseInt(""); //NaN;空字符串被转换为NaN
    parseInt(“1+2.3”);//1; 如果首位为数值,依次向后解析,找到连续的数值,直到遇到第一个非数值的,将之前获取的数值转换为Number返回
    parseInt(“123ac”);//123;
    2.parseFloat()
    与parseInt() 类似,但是也有不同:
    1.字符串中的第一个小数点是有效的,而第二个小数点则无效其后的内容会被省略
    2.始终忽略前导0
    parseFloat(“22.3.4”) //22.3
    parseFloat(“022.34”); //22.34
  1. m + n
  1. 当m,n不为String,Object类型的时候,先将m,n转换为Number类型,然后再进行计算
    true + false; //1;Number(true)+Number(false);
    true + 1; //2;Number(true) + 1
    null + undefined; //NaN;Number(undefined) -> NaN
  2. 当m,n有一个为String,无论另一个操作数为何(但不为对象)都要转换为String,然后再进行拼接
    “1” + true; // 1true
    “1” + undefined;// 1undefined
    “1” + 1; // 11
  3. 当m,n 有一个为对象,如果该对象既没有重写toString,又没有重写valueOf方法,使用toString()方法的返回值。如果该对象既重写toString,又重写了valueOf方法,调用valueOf方法获取返回值,将该返回值和另外一个操作数进行运算。如果该对象没有重写valueOf方法,将调用toString方法获取返回值,将该返回值和另外一个操作数进行运算。如果该对象没有重写toString方法,将调用valueOf方法获取返回值。
    var o = {
    name:“briup”,
    valueOf:function(){
    return “1”;
    }
    }
    o+1; //2;o+1

3.流程控制语句

  1. if语句
    if(condition){
    statement1
    }else{
    statement2
    }
    condition表示任意表达式,该表达式求值的结果不一定是布尔类型,如果不是布尔类型,ECMAScript会调用Boolean() 转换函数将这个表达式结果转换为一个布尔类型,如果condition求值结果为true,执行statement1。如果求值结果为false,执行statement2

    if(condition){
    statement1
    }
    statement2

note

复习
操作符
逻辑运算符
&& 逻辑与 短路运算符,有假则假,同真则真
如果第一个操作数是假性值(’’,0,NaN,null,undefined,false),直接返回第一个操作数,否则返回第二个操作数。
|| 逻辑或 短路运算符,有真则真,同假则假
如果第一个操作数是真,直接返回第一个操作数,否则返回第二个操作数。
! 逻辑非 取反操作
!true false
!‘hello’ false
!!‘hello’ true
三目运算符
表达式?值1:值2
如果表达式为真,使用值1,如果表达式为假,使用值2。
分支语句
数据类型转换
其他数据类型到string类型
1.拼接空字符串 +’’
2.toString()函数
null和undefined是不能使用toString()函数
进制转换
var num = 10;
num.toString(2);
3.String()包装器
其他数据类型到boolean类型
1.双感叹号 !!
2.Boolean()包装器
两种转换结果是趋于一致的。
可以将’’,0,NaN,null,undefined装换成false,其他的是true
其他数据类型到number类型
1.一元+(一元-)
2.Number()包装器
一元+和Number()包装器的转换结果是一致的。
string–>number
+‘123’ 123
+‘hello’ NaN
+’+123’ 123
+’-123’ -123
+‘123.3’ 123.3
+‘123.3.4’ NaN
+‘123abc’ NaN
+’ 123 ’ 123
+‘010’ 10 不当做8进制解析
+‘0x10’ 16 可以解析16进制
+‘1+2.4’ NaN 注意
+’’ 0
+’ ’ 0
boolean–>number
+true 1
+false 0
null–>number
+null 0
undefined–>number
+undefined NaN
3.parseInt() 解析整数
null,undefined,boolean类型都是NaN
只认数值
//转换null,undefined,boolean类型为NaN
//转换数值
console.log(parseInt(null)); //NaN
console.log(parseInt(undefined)); //NaN
console.log(parseInt(true)); //NaN
console.log(parseInt(false)); //NaN
//将number–>number
console.log(parseInt(10)); //10
//使用parseInt()取整
console.log(parseInt(11.11)); //11
//将string–>number
console.log(parseInt(‘123’)); //123
console.log(parseInt(‘123.2’)); //123
console.log(parseInt(’+123.2’)); //123
console.log(parseInt(’-123.3’)); //-123
console.log(parseInt(‘1+2’)); //1 注意
console.log(parseInt(‘123abc’)); //123,如果以数值开始的,解析到非数值的地方停止,将之前的返回 注意
console.log(parseInt(‘abc123’)); //NaN
console.log(parseInt(’ 123abc ‘)) //123
console.log(parseInt("")); //NaN
console.log(parseInt(" ")); //NaN
console.log(parseInt(‘010’)); //10 不会当做8进制解析
console.log(parseInt(‘0x10’)); //16 可以当做16进制解析
4.parseFloat() 解析小数
跟parseInt()很相似 可以返回小数
//null,undefined,boolean类型转换为NaN
console.log(parseFloat(null)); //NaN
console.log(parseFloat(undefined)); //NaN
console.log(parseFloat(true)); //NaN
console.log(parseFloat(false)); //NaN
//number–>nubmer
console.log(parseFloat(10)); //10
console.log(parseFloat(10.1)); //10.1
//string–>number
console.log(parseFloat(‘123’)); //123
console.log(parseFloat(‘123.3’)); //123.3
console.log(parseFloat(‘123.4.5abc’)); //123.4
console.log(parseFloat(‘hello’)); //NaN
console.log(parseFloat(’’)); //NaN
console.log(parseFloat(’ ')); //NaN
console.log(parseFloat(‘010’)); //10 不当做8进制解析,10进制
console.log(parseFloat(‘0x10’)); //0 不当做16进制解析【注意】
m+n
1.如果两个操作数都是number,正常计算
2.如果两个操作数不为String,Object类型的时候,先将两个操作数转换为Number类型,然后再进行计算。
3.如果有一个是string类型,另外一个是基本数据类型,进行字符串的拼接。
4.如果两个操作数中有一个Object类型,如果没有重写valueOf()和toString(),默认使用toString()返回值。如果该对象重写了valueOf()和toString(),使用valueOf()的返回值。如果没有重写valueOf()只重写了toString(),使用toString()的返回值。如果没有重写toString()只重写了valueOf(),使用valueOf()的返回值。拿到返回值之后,再根据返回值的数据类型进行对应的计算。

流程控制语句
分支语句
if else
switch case
循环语句
for
while
do while

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值