美文网首页前端攻城狮
JavaScript数据类型

JavaScript数据类型

作者: 范小饭_ | 来源:发表于2016-11-13 12:52 被阅读232次

hi,大家好,欢迎关注我的微信公众号“码农范er”,集分享,交友,聊天为一体,总有你喜欢的、快点关注我吧~


扫我关注

一言不合就放图。
我习惯把知识分类,来方便自己的理解和记忆,毕竟好记性不如烂笔头。在这里已经给大家分类好,如果文字表达不清除的地方,请看图,图上已包含所有的知识点,如果还是哪里有不理解,那就是概念性的东西了,而概念性的东西,问一下度娘,分分钟给你出答案。
对于知识分类整理的软件,如果是苹果电脑的我就不说话了,如果是windows系统,推荐X-mind,思维导图的整理软件,下载安装和使用都非常简单,如果有必要,可以某天给大家梳理一下。
PS:如果图片看不清的话,记得下载下来看,就可以了。
这个是今天的知识点,相对来说还是比较简单,下次开始就放真正的程序咯。一定要挺住。


javascript02.jpg

一、数据类型之间的相互转化

1.1其他基本类型转换成Number类型

凡事都可以变通的嘛。。当然,js的几种数据类型之前也是可以相互转化的。

1.1.1null转化成Number
    var ret1 = Number(null);
    console.log(ret1);//0
    console.log(typeof ret1);//Number

null只有一个值null,代表什么都没有,所以转化为数字的时候肯定就是0了。

1.1.2undefined转化成Number

console.log(Number(undefined));//NaN
undefined表示一个未定义的变量,或者表示定义了一个变量,但是没有初始值。所以将其转化为数字的时候,肯定是啥都没有的,银行卡没钱,去银行要取500万,不把你抓起来才怪,所以值是NaN。

1.1.3boolean转化成Number
    console.log(Number(true));//1
    console.log(Number(false));//0

布尔就比较好理解,对就是1,不对就是0;反正就俩答案。

1.1.4String转化成Number
    console.log(Number("123"));//123
    console.log(Number("+123"));//123
    console.log(Number("-123"));//-123
    console.log(Number("  123"));//123
    console.log(Number("12.3"));//12.3

    console.log(Number("12a3"));//NaN
    console.log(Number("12+3"));//NaN
    console.log(Number("12-3"));//NaN
    console.log(Number("a123"));//NaN
    console.log(Number("12 3"));//NaN
    console.log(Number("12..3"));//NaN  
    //0
    console.log(Number(""));//0
    console.log(Number("    "));//0

如果字符串中存在除了数字和点以外的其他字符,则转换失败,值为NaN
加减号在头表示正负号
开头有空白字符可以过滤

parseInt()转化
    console.log(parseInt("123"));//123
    console.log(parseInt("+123"));//123
    console.log(parseInt("-123"));//-123
    console.log(parseInt("   123"));//123

    console.log(parseInt("12+3"));//12
    console.log(parseInt("12-3"));//12
    console.log(parseInt("12a3"));//12
    console.log(parseInt("12.3"));//12

    console.log(parseInt("+"));//NaN
    console.log(parseInt("a123"));//Na

parseInt()会将接收到的数据(一般都是字符串)转成整数
转换规则:从第一个非空白字符(空格、换行、tab)开始转换,直到遇到一个非数字字符为止。
如果转化失败,结果为NaN

parsefloat()
    console.log(parseFloat("12.3"));//12.3
    console.log(parseFloat("12..3"));//12
    console.log(parseFloat("     12.3"));//12.3
    console.log(parseFloat("12.3+123"));//12.3

parsefloat() 会将接收到的数据(一般都是字符串)转成浮点数
转化规则和parseInt()一样。

1.2其他基本类型转换成String类型

String类型表示的是字符串类型, 这个相当好理解

1.2.1null转化成string
    var str = "good man";
    console.log(str+null);  //null

null翻译成字符串,肯定就是字符串类型的null

1.2.2undefinedl转化成string

console.log(str+undefined);//undefined
undefined翻译成字符串,肯定就是字符串类型的undefined

1.2.3boolean转化成string
    var flag = true;
    var ret1 = flag.toString();
    console.log(ret1);//true
    console.log(typeof ret1);//string

string翻译成字符串,肯定就是字符串类型的string

1.2.4number转化成stringss
    var num = 1;
    console.log(""+1);//1
    console.log(num.toString());//1

number翻译成字符串,肯定就是字符串类型的number

1.3其他基本类型转换成Boolean类型

Boolean更好理解,不是对就是错咯,有几种是一定错的,剩下的就是对的。所以只列举错的了哈

    console.log(Boolean(0));
    console.log(Boolean(""));
    console.log(Boolean(false));
    console.log(Boolean(NaN));
    console.log(Boolean(undefined));
    console.log(Boolean(null));

1.boolean中false转化成number的时候,结果是0,所以0在布尔中也是代表一个错误值;
2.一个空的字符串;
3.false本身也是一个错误
4.NaN
5.undefined
6.null
除了错的,都是对的。

二.prompt()

prompt()接受外部的数据,接受到的默认是字符串类型
所以需要的时候,通常情况下都是将其用parseInt转化成number

    num1 = parseInt( prompt("请输入num1的值"));
    num2 = parseInt( prompt("请输入num2的值"));
// 打印和
    console.log(parseInt(10+3.8));

三、算数运算符和算数运算表达式

先明确一个概念,什么是表达式。
表达式:由变量,常量,和运算符组成的式子
如何阅读表达式?
1.先看其功能:进行相关的运算。
2.再看其值:相关运算之后得到的值

3.1算数运算符

+ - * / %
加 减 乘 除 取余数

3.2算数运算表达式

算数运算表达式:变量1 算数运算符 变量2
功能:进行相关的数学运算,不能改变变量的值
值:相关数学运算之后的结果

四、赋值运算符和赋值运算表达式

赋值运算符: =
赋值运算表达式: 变量 = 表达式
功能:用右侧表达式的值给左侧变量赋值
值:赋值运算结束之后,变量的值

五、自增自减运算符和自增自见运算表达式

5.1自增

自增运算符: ++
自增运算表达式: 变量++ ++变量
功能:两种都是变量的值加1
值:
变量++:先取值再加1,表达式的值是变量+1之前的值
++变量:先加1再取值,表达式的值是变量+1之后的值

    var a = 1;
    var b ;
    b = a++;//1
    b = ++a;//2
5.2自减

自减运算符: --
自减运算表达式:变量-- --变量
功能:两种都是将变量的值减1
值:
变量--:后-- ,先取值再减1,表达式的值是变量-1之前的值
--变量:先--,先减1再取值,表达式的值是变量-1之后的值

    var m = 2;
    var n;
    n = m--
    console.log("n=" + n);//n=2
    console.log("m=" + m);//m=1

六、复合运算符

加等+=:a+=1 ☛ a=a+1
减等-= : a-=1 ☛ a=a-1
乘等=:a=1 ☛ a=a*1
除等/=:a/=1 ☛ a=a/1
取余等于%=:a%=1 ☛ a=a%1


前方高能

基本概念性的东西已经差不多了,如果用到后续会补
开始接触简单的小语法

七、if语句

流程控制语句:正常情况下代码自上而下一句一句的执行,但是有些语句可以改变执行的方式(顺序),这种语句成为流程控制语句
格式:

    if (表达式){
            语句
        }

逻辑:
当程序执行到if语句时,首先计算小括号里的“表达式”,如果“表达式”的值为真则执行大括号中的“语句”,如果“表达式”的值为假,跳过整个if()语句, 继续向下执行
小例子:

        // 输入一个整数,判断是否是偶数,如果是偶数,打印“我是偶数”
        var n ;
        n = parseInt(prompt("请输入一个数"));
        if ((n%2)==0){
            console.log("我是偶数");
            // if (1){
            //  console.log("可以嵌套,嵌套不要超过6层,一般也就3层")
            // }
        }
        console.log(" ");

八、if-else语句

格式:

        if (表达式){
            语句1
        } else{
            语句2
        }

逻辑:
当程序执行到if-else语句时,首先计算小括号里中“表达式”的值
如果表达式的值为真,则执行语句1,执行完语句1,就结束整个if-else语句,继续向下执行。
如果表达式的值为假,则不执行语句1,执行语句2,就结束整个if-else语句,继续向下执行。
小例子:

        var n ;
        n = parseInt(prompt("请输入一个数"));          
        if (n%2==0){
            console.log("我是偶数");
        } else{
            console.log("我是奇数");
        }

九、关系运算符和关系运算表达式

// > < >= <= == === !=
大于 小于 大于等于 小于等于 等于 绝对等于 不等于
关系运算表达式:表达式1 关系运算符 表达式2
功能:
计算表达式1和表达式2的值
值:
如果关系成立,值为真,否则为假。
注意:
关系运算符不能连用
1 <= num <= 5;这么写是错误的!这么写是错误的!这么写是错误的!
1 <= num && num<= 5; 要这么写!!!

十、逻辑与运算符

逻辑与运算符:&&
逻辑与运算表达式:表达式1 && 表达式2
值:
有一个是假的,全是假的
如果表达式1的值为真,表达式2的值为真,则逻辑与表达式的值为真;
如果表达式1的值为真,表达式2的值为假,则逻辑与表达式的值为假;
如果表达式1的值为假,表达式2的值为真,则逻辑与表达式的值为假;
如果表达式1的值为假,表达式2的值为假,则逻辑与表达式的值为假;
表达式1 && 表达式2 && 表达式3 &&表达式4 &&...&& 表达式n
惰性求知(短路原则)
从左到右一次计算表达式的值,直到遇到一个表达式的值为假则停止计算,因为此时我们已经知道逻辑与运算表达式的值为假了。

十一、逻辑或运算符

逻辑或运算符: ||
表达式或运算表达式: 表达式1 || 表达式2
值:
有一个真的,就是真的
如果表达式1的值为真,表达式2的值为真,则逻辑或表达式的值为真;
如果表达式1的值为真,表达式2的值为假,则逻辑或表达式的值为真;
如果表达式1的值为假,表达式2的值为真,则逻辑或表达式的值为真;
如果表达式1的值为假,表达式2的值为假,则逻辑或表达式的值为假;
惰性求知(短路原则)
从左到右一次计算表达式的值,直到遇到一个表达式的值为假则停止计算,因为此时我们已经知道逻辑与运算表达式的值为假了。

十二、逻辑非运算符

逻辑非运算符:!
逻辑非运算表达式:!表达式
值:
如果表达式的值为真,则逻辑非运算表达式的值为假
如果表达式的值为假,则逻辑非运算表达式的值为真
颠倒黑白
不能连用


今天收工!

相关文章

网友评论

    本文标题:JavaScript数据类型

    本文链接:https://www.haomeiwen.com/subject/xxhcpttx.html