javascript类型转换、运算符

类型转换:

其他字符转换为字符类型

toString();方法和String();函数

// 类型转换,指将其他数据类型转换为String、Number

 let a = 10;

 // 将其他类型转化为字符串

  // 方式一:调用呗转换类型的toString();方法

 console.log(a , typeof a);

 a = a.toString();

  // toString();创建了一个新的空间一个是10的字符串但是a的值并没有改变,要给a进行赋值

 console.log(a , typeof a);

 //null和undefined不含有toString();方法

 // 方式二:调用String();函数,将被转换类型转换为字符串

 let b = 23;

 console.log(b , typeof b);

 b = *String*(b);

 console.log(b , typeof b);

 // String();函数能将null和undefined类型转换为String

在这里插入图片描述

其他类型转换为数字类型

Number();函数(转化非数字的字符串转换出来是NaN,null类型转换出来是0)和专门转化字符的parseInt、parseFloat(将字符中的整数或者浮点数找出来)

 /*

 将其他类型转换为数字

 */

 let a = '123';

 console.log(a,typeof a);

//转换为数字,使用NUmber();函数

/*

如果数字是一个合法数字的化转换出来还是数字

如果不是数字是字符的话转换出来时NaN

如果时null是0

如果是true转换为1,如果是false转换为0

如果是undefined转换为NaN



*/

a = *Number*(a);

console.log(a,typeof a);

let b = 'abc';

console.log(b,typeof b);

b = *Number*(b);

console.log(b,typeof b);



/*

将字符串解析为一个数字

parseInt将字符转换为整数,函数从左往右依次读取一个字符中的字符

直到找到字符串中所欲的合法整数

parseFloat将字符转换为浮点数

如果是true或者false转换为NaN

去掉字符串的作用

*/

let c = '123.45abc';

console.log(c,*Number*(c));

console.log(c,parseInt(c));

console.log(c,parseFloat(c));
其他类型转化为布尔类型

用Boolean();函数将其他类型转换为布尔类型

将数字转换为Boolean类型

如果需要,作为第一个参数传递的值将转换为布尔值。如果省略或值0,-0,null,false,NaNundefined,或空字符串(""),该对象具有的初始值false。所有其他值,包括任何对象,空数组([])或字符串"false",都会创建一个初始值为true的对象。

 /*

  将其他类型转化为布尔值,使用Boolean();函数

  */

 //数字转化为boolean类型,除了0和NaN以外其他都是true

  let a = 10;

  let b = -10;

  let c = 0;

  let d = NaN;

  let e = Infinity;

  console.log(a, b, c, d, e);

  console.log(*Boolean*(a), *Boolean*(b), *Boolean*(c), *Boolean*(d), *Boolean*(e))

在这里插入图片描述

将字符串转换为Boolean类型
//字符类型转换为boolean类型,只有字符为空的时候才会转换为false其他都是true

 let a = 'hello';

 let b = 'flase';

 let c = '  ';

 let d = '';

 console.log(a, b, c, d);

 console.log(*Boolean*(a), *Boolean*(b), *Boolean*(c), *Boolean*(d));
将null类型和undefined类型转换位Boolean类型
// 将null和undefined转换为Boolean类型

let a = null;

let b = undefined;

console.log(a, b);

console.log(*Boolean*(a), *Boolean*(b));

运算符

算数运算符:

通过运算符可以对一个值或者多个值进行运算

对一个值进行运算,称一元运算符

对两个值进行运算,称二元运算符

算数运算符

+将两个值进行加法运算

-将两个值进行减法运算

*将两个值进行乘法运算

/将两个值进行除法运算

**幂运算

%模运算

 let a = 10 - 5;

 let b = 10 / 0;

 let c = 10 * 10;

 let d = 10**0.5;

 let e = 10 % 2;

 console.log(a, b, c, d);

隐式类型转换,除了字符进行运算以外,其他类型都会先转换为数字进行运算

//对字符串进行给加法运算

 // 除了字符串的加法以外,对其它类型的值进行算数运算时都后将其他类型转换为数字



 let result = "hello" + "world!";

 let result1 = true + false;

 let result2 = 1 * null;

 let result3 = 13 - undefined;

 console.log(result,result1, result2, result3); 

任何值和字符串做加法时都会转换成字符串然后和字符串进行拼串

  let a = '123' + 123;

  let b = 'hello' + 123;

  console.log(a,b);

  console.log(typeof a,typeof b);

可以将任何类型加一个空串,就将类转换为字符串了

一元运算符

typeof运算符、一元的+、一元的-、自增和自减

 /*

  typeof

   检查一个值的类型

  一元的+

   不会对数值产生任何影响

  一元的-

   会对数值进行符号取反

  自增和自减

   自增(++)

​    前加加和后加加

​    无论是++d还是d++;都会让d加1;它们的功能是相同的但是返回的结果是不同的

​    d++返回的是变量自增前的值,++d返回的是变脸自增后的值

   自减(--)

​    d--和--d都会让d减1然后汉辉的结果不同,和自增差不多

  */

  let a = 10;

  a = +a;

  let b = 10;

  b = -b;

  console.log(a, b);

  console.log(typeof a, typeof b);

 //可以利用一元的+将字符转换为数字(隐式的类型转换)

 let c = '10';

 c = +c;

 console.log(c,typeof c);

 let d = 10;

 console.log('d++ = '+ d++);

 console.log('++d '+ ++d);

 // 自减

 let e = 10;

 console.log('e-- = '+ e--);

 console.log('--e '+ --e);
赋值运算符
  /*

  赋值运算符

   用来将一个值赋值给一个变量

   =将右边的赋值给左边的

   +=将左边的值加右边的值赋值给左边

   -=将左边的值减右边的值给左边

   *=将左边的值值乘右边的值赋值给左边

   /=将左边的值除右边的值赋值给左边

   **=将左边的值幂运算右边的值赋值给左边

   %=将左边的值取模右边的值赋值给左边

  */

  let a = 10;

  a = a + 10;

  console.log(a);

  a += 5;

  console.log('+=5',a);

  a -= 5;

  console.log('-=5',a);

  a *= 5;

  console.log('*=5',a);

  a **= 5;

  console.log('**=5',a);

  a /= 5;

  console.log('/=5',a);

  a %= 5;

  console.log('%=5',a);

会导致变量发生改变的(为变量进行重新的赋值)

A = xx

A += xx

A -= xx

A *= xx

A **= xx

A %= xx

还有自增和自减

逻辑运算符
 /*

   逻辑运算符

​    逻辑非!

​     取反操作,如果值是true,则会变成false,如果值是false,则会变成true

​     如果对一个非布尔值进行逻辑非运算,他会将其转换为布尔值,然后再取反

​     利用这一点可以将其他类型取两次反,然后转换为布尔类型

​    逻辑与&&

​     如果两侧的值都是true那么就返回true,其他都返回false

​    逻辑或||

​     如果两侧的值只要有一个true就返回true,其他都返回false

  */

 let result = true;

 console.log('!result', !result);

 console.log('result&&result', result&&result);

 console.log('result&&false', result&&false);

 console.log('result||false',result||false);

 console.log('false||false',false||false);
非布尔值逻辑运算

如果对非布尔值进行与运算,会首先将其转换为布尔值,然后运算,最终返回原值

  /*

  与运算

   如果对非布尔类型进行与运算

   与运算是找false

  或运算

   如果第一个值是true,则直接返回第一个值,如果第二个值是true就返回第二个

   */

  let result = 'hello' && 1;

  console.log(result);

  result = 1&&'hello';

  console.log(result);

  //NaN和1

  result = 1&&NaN;

  console.log(result);

  result = NaN&&1;

  console.log(result);

  //NaN和0

  result = 0&&NaN;

  console.log(result);

  result = NaN&&0;

  console.log(result);
关系运算符
 /*

  关系运算符

   用来比较两个值之间的大小关系

​    如果关系成立则返回true不成立则返回false

​    \>比较左侧值是否大于右侧值

​    \>=比较左侧值是否大于等于右侧值

​    <比较左侧值是否小于右侧值

​    <=比较左侧值是否小于等于右侧值

   对于非数字类型的值进行比较时,浏览器会自动将其直接转换为数字

   如果比较的是两个字符串的大小则情况比较特殊

  */

  let result = 10 > 5;

  console.log(result);

  result = 10 >= 10;

  console.log(result);

  result = 10 < 7;

  console.log(result);

  result = 10 <= 7;

  console.log(result);

  //非数字类型

  result = true > false;

  console.log(result);

  result = '55' > 10;

  console.log(result);

  result = null < '10';

  console.log(result);

  result = true < '10';

  console.log(result);
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值