JS笔记 (六) 数据类型转换、运算符

数据类型

	var num = 123;			number:所有的数字集合,所有的数字(不带上引号的);
	var str = '123';		string:所有的被引号(单引号或双引号)都是属于字符串;
	var bool = true;		boolean:true or false;
	var null = null;		null: null代码的是一个空值;是一种独立的数字类型;
	var obj = [];			object:对象;
	var und = undefined;	undefined:未定义;
	
	undefined    与null值的区别在于:
   1.undefined未初始化值/默认值;
   2.数据类型不同;
   3.两种类型都不相同,undefined类型的值为undefined , null类型的值还是null;JS里面,除了复杂型的数据类型object以外,其它的五种都是属于基本的数据类型;
	比如说数组,比如说json{}对象、function.都是属于复杂的数据类型;
	

数据类型的转换

一、Number()

//在不同类型中,值进行不同的类型转换;//如何把字符串转变为数字;
//我们只需要使用Number的内建函数/原生的构造函数;由JS的底层提供的。
var str = '123';
console.log( typeof str );   //stringvar num = Number( str ); 
console.log( num );   //123  string
console.log( typeof num );  //number//如果数字类型为字符串,里面不是数字;
var str = 'ABC';   
var num = Number( str );
console.log( num ); //非字符类型;会弹出NaN;//NaN        Not a number   不是一个数字(坏数值);
console.log( typeof num );  //number//在写代码的时候,如果有一个数值变为NaN,一定是进行了非法的数学运算。
//比如(进行了非法的数学运算,或强制地转换为数字类型),这样就会出现问题,就会出来NaN。
    console.log( 1/'a' );

负号可以被转换

var str = '-100';
var num = Number( str );
console.log( num);   // -100  可以被转;  数字里面存在着负号;

''空字符串可以转换

var str = '';
var num = Number( str );
console.log( num );     //输出0       ''字符串可以被Number转为0;

null 可以被转化为0;
undefine 会被Number转化为NaN;
true 可以被转化为1;
false 可以被转化为0;
[] 0
[]如果有多条数据的话,变为NaN.
{} NaN

二、转字符串 String/toString

var a = 1;
var str = String(a);// ' 1 '
console.log( typeof str ); //stringvar a = NaN;
var str = String(a);
console.log( str );// ' NaN ' 
console.log( typeof str );//string

var a = true;
var str = String(a);
console.log( str ); // 'true  '
console.log( typeof str );//string

var a = [];
var str = String(a);
console.log( str ); // ''  可以,但是转的时候会变成一个空的字符串;
console.log( typeof str );//stringvar a = [123,'abc'];
var str = String( a );
console.log( str );     //123,ABC
console.log( typeof str ); //stringvar a = null;
var str = String( a );  
console.log(str) // 'null'
console.log( typeof str ); //stringvar a = undefined;
var str = String( a );  
console.log(str) // 'undefined'
console.log( typeof str ); //string

var a = function(){};
var str = String( a );  
console.log(str) // 'function(){}'
console.log( typeof str ); //string

三、转布尔值 ( boolean )

转化为布尔值;
var a = 1;  // 六个转为false 的值 :0 、''、undefined 、null 、NaN 、false .
var b = Boolean(a);  //true
console.log( b );var a = 'false';
var b = Boolean( a );
console.log( b );//truevar a = 1/'a';
var b = Boolean( a );
console.log( a ); //表达式进行运算;   NaN ;
console.log( b );//false//表达式要进行到最简结果才拿过来运算;如果属于六个中的一个,就属于false;

四、parseInt 取整

取整数,把小数部分去掉

//从左往右依次地检查,一旦发现非数字就停止了。
var a = '5.20';  //取整的时候不会去认小数点的,一但发现非数字,取值就停止了。
var b = parseInt( a );
console.log( b );// 5 //如果说是非数字的话;
var a = '100px'; 发现非数字px,取值就停止了。
var b = parseInt( a );
console.log( b );  // 100

var c = parseInt( 'abc' );  //输出NaN,因为Number会把这些东西全都转换为数字;
console.log( c );//如果里面有非数字,所以转不了。所以是NaN;
//比如:传入一个字符串,会从字符串的左边开始往右找(会忽略开始的空格字符),直到遇到非数字(除了- + 号)停止。var a = parseInt( '.100px' );     -> 不能转;
var a = parseInt( '    100px' );  -> 会忽略开始的空格字符 。
var a = parseInt( true );         -> 不能
var a = [];          			  -> 不能转

五、parseFloat

用来取一个浮点数的(能取到小数部分)
只认第一个小数点,这时候第二个小点数后面的内容都会被舍弃。

var a = 1.2.34 ;
var b = parseFloat( a );
console.log( b );  //1.2var a = '';//空字符串会被转为NaN;
var a = [];//会被转为NaN,因为他会调用toString,返回空字符串;var a = ['1'];//如果是['1'] ,同样是可以转的,最终传的是'1',
var b = parseFloat(a);
console.log( b );//1

六、运算符

算术运算符: + - * / %

var a = 1
var b = a + '2'; //'12'   加号左右有字符串会进行拼接 
var c = a * '13'; //13    除了加号 都会强制类型转换 1 * 13 = 13 

赋值运算符: =

var x = 1 ;//创建了一个空间名为 x 它的值为 1
	x = 2; //重新赋值 比如汽车一个轮胎为2斤气感觉不够 重新加气加到2.5斤

比较运算符:> < >= <= != !==

比较运算符返回 true false 多数用于判断
var x = 1;
if( x < 2){console.log('x确实小于2')

逻辑运算符 : && || !

逻辑运算符(且、或、非):
&的优先级高于||

逻辑且(并且) (&&)&&遇到true就通过,false则停止
var a = 0 &&2 ;  //boolean 0 ->false, 返回零;
var b = 1 &&2 ;  //boolean 1 ->true, 返回2;
console.log( a ); 
console.log( b );
//&&遇到true就通过-->也就是两边会进行boolean值的转换,如果两边都是true的时候就通过。
var a = null && 2 ; //boolean null -> false , 返回 null .
var a  = {} && 2 && "" && '123' ; //boolean()
//console.log( a ); -> '' 值在哪个地方停的就取谁。


逻辑或 (||)|| 逻辑或 :false通过,遇到true就停止。
//||两边会转为布尔值,如果转为布尔值以后是false.就通过;
var a = 0 || 2;   //0
console.log( a ); //
var b = '123'&&123||!""||true&&undefined||1; //123 , undefined
var c = 123||!""||undefined||1;
console.log( b )



取反(非) (!)
六个转为false 的值 :0''、undefined 、nullNaNfalse .
只有两种状态才可以取反,只有正反对应两种状态。

//在JS中,只是两种类型才只有一种状态,布尔值;
//true的相对值为false ;var a = true ;
//console.log( !a );  ->falsevar a = 1 ;
// console.log( !a );  ->false  -> 强制隐式类型的转换;
//console.log( !!a );  ->true 不会影响到a的变量,只是在当前的运用环境中运用强制变换,本身的值是不会发生改变的。

括号运算符:提升优先级的时候;

var a = 1 * 3 + 4
console.log(a)//7 不加括号

var a = 1 * (3+4) //优先计算括号
console.log(a)//12

% 取余
在进行除法运算中会产生余数,也就是说取余是取余数部分(5/2 = 2%1)。
var a = 12 
console.log(a % 4 ) //0

++和 - -

//隐性类型转换;
var a = '1';
a++;
console.log( a );
// 但是 ++ 可以拆分为 a = a + 1 ; 但是有一边为字符串的时候会是拼接。
/*
    如果有一边是字符串的时候,++会进行隐式的强制类型的转换,调用的还是Number()的方法;
    减号的时候,本来就是会进行隐式类型的转换的。
*/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值