JavaScript数据类型和变量声明

1.JS数据类型转换
显式数据类型转换

即通过一些特定API将数据类型直接转换
a. 转换为字符串:
API: toString( )
语法:数据.toString( )
返回值:字符串;

 console.log( (123).toString() );//'123'
 //切记数字是一个整体,要带括号,不带会报错
 console.log( true.toString() );//'true'
 console.log( (undefined).toString );//报错
 console.log( (null).toString );//报错
 console.log( (NaN).toString() );//'NaN'
 console.log( ([1,2,3]).toString() );//'1,2,3'
 console.log( ({a:123}).toString() );//'[object Object]'
 //任何对象转都会是这个结果
 console.log( (function(){}).toString() );//'function(){}'
 //直接将函数作为字符串打印出来,包括函数体

API:String( )
语法:String( 数据 );
返回值:字符串

 console.log( String(123) );//"123"
 console.log( String(true) );//"true"
 console.log( String(undefined) );//'undefined'
 console.log( String(null) );//'null'
 console.log( String(NaN) );//"NaN"
 console.log( String([1,2,3]) );//"1,2,3"
 console.log( String({}) );//"[object Object]"
 console.log( String(function(a){}) );//function(a){}
 //和toString()的区别是String()能将所有数据类型转换为字符串

b. 转换成数字
语法: Number( 数据)
语法:parseInt( 数据)
语法:parseFloat(数据)

 console.log( Number('1234') );//1234
 console.log( Number('123a') );//NaN
 console.log( Number(true) );//1
 console.log( Number(false) );//0
 console.log( Number(null) );// 0
 console.log( Number(undefined) );// NaN
 console.log( Number(NaN) );// NaN
 console.log( Number([]) );//0
 console.log( Number({}) );//NaN
 console.log( Number(function(){}) );//NaN

Number()只能转换纯数字构成的字符串,这点和parseInt()和parseFloat()不同。另外还能转换布尔值和空数组为数字,其余全部转换为NaN;

c. 转换为布尔值
语法:Boolean(数据)

console.log( Boolean(123) );//true
console.log( Boolean(0) );//false
console.log( Boolean('123') );//true
console.log( Boolean('') );//false
console.log( Boolean(' ') );//true
console.log( Boolean(null) );//false
console.log( Boolean(undefined) );//false
console.log( Boolean([]) );//true
console.log( Boolean({}) );//true
console.log( Boolean(function(){}) );//true
console.log( Boolean(NaN) );//false
console.log( Boolean('abc') );//true
console.log( Boolean('你好') );//true

总结:’'空字符串    null    undefined    NaN    0    false 这6个会转成false,其他所有值都是true

隐式数据类型转换

js是一种弱类型语言,在计算的时候自动进行数据类型的转换
“+”在js中有两种作用,数学运算或字符串拼接

console.log( 2 + 3 );// 5
//两边纯数字,进行数学运算
console.log( 2 + '3' );// '23'
//一边是字符串,进行字符串拼接
console.log( 3 + true );// 4
//一边是数字,一遍是布尔值,布尔值发生数据转换,再进行数学运算
console.log( 3 + null );// 3
//一边是数字,一边是null,null转换为0再进行数学运算
console.log( 3 + undefined );// NaN
//一边是数字,一边是undefined,计算结果为非数字

其他数学运算符

console.log( 7 - '2' );//5
//其他数学运算符,将两边转换为数字,转换失败得到结果为NaN
2.选择结构

if结构

 if (判断条件/逻辑点){
    // 如果条件判断为 true,则执行这里面的代码
 }

switch结构

switch(a){
    case 1: 
        console.log(111);
        console.log('aaa');
        break;//停止往后运行
    case 2:
        console.log(222);
        console.log('bbb');
        break;//停止往后运行
    case 3:
        console.log(333);
        console.log('ccc');
        break;//停止往后运行
    default:
    	//其他情况
        console.log(444);
        console.log('ddd');
}

如果无break则会发生穿透效应,如果是case 1,那么后面的所有分支都会执行;

三目运算
条件1? 分支1:分支2;
条件1成立执行分支1,反之执行分支2;

 true ? console.log(111) : console.log(222);
3.循环语句

for语句

 for (表达式1;表达式2;表达式3){
      // 循环体4
 }
 for (var i = 0; i < 5; i++){
    console.log('hello world');
}

执行顺序第一次为1243,第二次为243,最后一次为2条件不通过,直接结束循环

while语句

 while(判断条件){
     console.log(11);//循环体
 }
 //例
var n = 1;
while(n < 5){
    console.log(555);
    n++;
}

do while 语句

do{
    console.log(11111);
    n++;
} while(n < 5);

在判断条件之前,无论满足不满足,都会执行一次do内代码;

4.函数

函数书写形式
1.函数表达式

var fn3 = function (){
    console.log('函数表达式');
}

先声明再调用
2.函数声明

function fn4(){
    console.log('函数声明');
}

既可以先声明,也可以先调用

3.匿名函数
不允许单独定义,常作为事件处理函数等回调函数
也可以作为匿名自执行函数,在函数内定义变量可以节省全局空间,防止变量冲突

btn.onclick = function (){// 匿名函数,事件处理函数
    console.log(123);
}
;(function (){
    console.log('匿名自执行函数');
})();//匿名自执行函数

函数返回值
函数默认返回值为undefined,只有return时也为undefined,函数会在执行完return结束函数执行;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值