• 前端笔记5-js1


    一.在JS中一共有6种数据类型
    1. String 字符串
    2. Number 数值
    3. Boolean 布尔值
    4. Null 空值
    5. Undefined 未定义
    6. Object 对象

    其中 String Number Boolean Null Undefined属于基本数据类型,而Object属于引用数据类型

    二 .String 字符串
    1.在JS中字符串需要使用引号引起来,双引号或单引号都行
    2.str变量 "str"字符串
    3.引号是不能嵌套的

    三.typeof
    - 通过typeof可以来检查一个变量的类型
    - 语法:typeof 变量
    - 它会将检查的结果返回
    - 使用typeof检查一个字符串时,会返回string
    - 使用typeof检查一个数值时,会返回number

    四.

    * JS中可以表示的最大的数字
    * Number.MAX_VALUE 来获取最大值
    * 1.7976931348623157e+308
    *
    * Number.MIN_VALUE 0以上的最小值
    * 5e-324
    *
    * 如果我们使用的数字超过了最大值,则会返回Infinity,表示无穷
    * ±Infinity 正负无穷,它的类型也是Number
    *
    * 特殊的数字
    * NaN (Not A Number)
    * - 用来表示一个非法的数字
    * - 使用typeof检查一个NaN时,也会返回number

    五.进制

    需要表示一些其他进制的数字
    - 十六进制数字:
    0x数字
    - 八进制数字
    0数字
    - 二进制的数字
    0b数字 IE不支持 Hbuilder也不支持

    var b = 0x10; //十六进制的10
    b = 070; //八进制的10
    b = 0b10; //二进制的10

    六.Boolean

    Boolean(布尔值)
    - 我们可以使用布尔值来进行逻辑判断
    - 布尔值只有两个true和false
    - true表示逻辑的真
    - false表示逻辑的假
    - 使用typeof检查一个布尔值时,会返回boolean

    七.

    Undefined(未定义)
    - Undefined表示一个声明但是没有赋值的变量
    - Undefined的类型只有一个值 undefined
    - 使用typeof检查一个Undefined类型的数据时,会返回undefined

    Null(空值)
    - Null类型只有一个值,就是null
    - null值专门用来表示为空的对象
    - 使用typeof检查一个Null类型的值时,会返回object

    八.

    将其他的数据类型转换为String
    - 方式一:
    - 调用被转换数据类型的toString()方法
    - toString()方法不会改变原变量的值,而是将值转换为字符串并返回
    - 由于null和undefined中没有toString()方法,
    所以不能调用toString()将他们转换为字符串

    - 方式二:
    - 调用String()函数
    - 将被转换的数据做为参数传递给String()
    - 原理:
    - 对于具有toString()方法的类型来说,
    String()会调用它们的toString()方法来将其转换为字符串
    - 对于null和undefined来说,
    会将null 直接转换为 "null"
    将undefined 直接转换为 "undefined"

    九.

    /*
    转换为Number
    - 方式一:
    - 使用Number()函数
    - 转换的情况:
    1.对于字符串来说
    - 如果字符串是一个合法的数字,则将其转换为对应的数字
    - 如果字符串不是一个合法的数字,则转换为NaN
    - 如果字符串是一个空串或纯空格的字符串,则转换为0

    2.对于布尔值来说
    - true转换为1
    - false转换为0

    3.对于Null
    - null转换为0

    4.对于Undefined
    - undefined转换为NaN
    * */

    var b = "123px";//NaN
    b = "123";//123
    b = "abc";//NaN
    b = ""; //0
    b = " "; //0

    //调用Number()函数将b转换为数字
    b = Number(b);

    //布尔值
    b = true; //1
    b = false; //0
    b = Number(b);

    //Null
    b = null;
    b = Number(b);

    //Undefined
    b = undefined;
    b = Number(b);

    /*
    * 除了使用Number()函数,JS中还为我们提供了两个函数,
    * 专门用来将一个字符串转换为数字的
    * parseInt()
    * - 将一个字符串转换为整数
    * - 使用该函数解析字符串时,它会从字符串的左侧开始解析,
    * 直到解析到最后一个有效的整数位
    * parseFloat()
    * - 将一个字符串转换为小数
    * - parseFloat()和parseInt()类似
    * 不同的是它可以解析到有效的小数位
    */

    var c = "456px"; //456

    c = "789a678b456"; //789

    c = "123.456"; //123

    /*
    * 像"070"这样的字符串,火狐 chrome等浏览器会当成10进制数字进行解析,转换为70
    * 但是IE8,会将其当成8进制的数字解析,解析为56
    *
    * 在使用parseInt时,可以传递以进制作为参数,来说明数字的进制
    */
    c = "070";

    //调用parseInt将其转换为Number
    c = parseInt(c,10);

    /*console.log(c);
    console.log(typeof c);*/

    var d = "123.45px";//123.45
    d = "123.45.67"; //123.45
    d = "hello123"; //NaN

    d = parseFloat(d);

    console.log(d);
    console.log(typeof d);

    十.

    /*
    * 转换为Boolean
    * - 使用Boolean()函数
    * - 转换的情况:
    * - 对于数字
    * - 除了0和NaN剩下都是true
    *
    * - 对于字符串
    * - 除了空串剩下的都是true
    *
    * - null和undefined都是false
    *
    * - 对象默认都是true
    */

    var a = 1; //true
    a = -100; //true
    a = Infinity; //true
    a = 0; //false
    a = NaN; //false

    //调用Boolean()来将a转换为Boolean
    a = Boolean(a);

    a = "hello"; //true
    a = "false"; //true
    a = ""; //false
    a = " "; //true
    a = "0"; //true
    a = Boolean(a);

    a = null;
    a = Boolean(a);

    a = undefined;
    a = Boolean(a);

     十一.算术运算符

    +可以对符号两侧的值进行加法运算,并将运算结果返回
    当对非数字(除了字符串)进行加法运算时,它会将其先转换为数字,然后再运算
    如果对两个字符串进行相加,则会进行拼串的操作,将两个字符串拼成一个字符串
    任何值和字符串进行加法运算时,都会先将其转换为字符串,然后在和字符串进行拼串的操作
    我们经常通过为一个任意的值加 空串的形式来将其转换为字符串,
    这种形式我们称为隐式的类型转换,原理实际上也是通过String()函数转换的,
    但是这种方式更加简单。

    a = true + false;//1
    a = false + null; //0
    //任何值和NaN做任何运算都是NaN
    a = NaN + 10; //NaN
    a = undefined + 100; //NaN
    a = "hello" + "world"; //"helloworld"
    a = 11 + "abc"; //"11abc"

    - 可以对符号两侧的值进行减法运算
     * 可以对符号两侧的值进行乘法运算
     /可以对符号两侧的值进行除法运算

    这些符号的运算规则和数学中是一摸一样的,
    不同的是在对非数字类型进行运算时,会先将其转换为数字然后在运算
    我们还可以通过为一个任意的数据类型 -0 *1 /1 来将其转换为Number类型
    原理和Number()函数一样。

     % 可以对符号两侧的值进行取模(取余)运算
     同样对非数字进行取模的运算,也会转换为数字然后在运算

    十二.一元运算符

    //可以使用一元的+或-将其他数据类型转换为Number,原理和Number()函数一样
    a = "123";
    a = +a;  //123 number类型的

    十三.逻辑运算符

    ! 逻辑非
     非可以对一个布尔值进行取反操作
    true变成false,false变true
    如果为一个值取两次反和没取一样
    如果对一个非布尔值进行取反操作,它会将其转换为布尔值然后再运算
     利用这个特点,我们可以为任意的数据类型去两次反,来将其转换为布尔值,
    原理和Boolean()函数一样

    /*
    * 为a取两次反,来将其转换为布尔值
    */

    a = 1;
    a = !!a;  //true

    十四.

    对于非布尔值,做与或运算时,它会先将其转换为布尔值,然后在运算 最终返回变量的原值!
    - 非布尔值的与运算:
    如果第一个值为false,则返回第一个。如果第一个值为true,则返回第二个

    - 非布尔值的或运算
    如果第一个值为true,则返回第一个。如果第一个值为false,则返回第二个

    //如果两个值都为true,则返回后边的
    var result = 2 && 10; //10

    result = 0 && 1; //0

    result = 1 || 2; //1
    result = 0 || 2; //2

    十五.关系运算符

    如果对非数值类型进行关系运算,则会将他们转换为Number然后在比较

    var result = 5 < 4; //false

    result = true < "2"; //true
    result = null < 5; //true

    //NaN < 5 NaN和任何值比较都是false
    result = undefined < 5; //false
    result = undefined > 5; //false
    result = undefined >= 5; //false
    result = 5 < "4"; //false

    * 当关系运算符的两侧都是字符串时,它不会将字符串转换为Number,而是会比较字符串的Unicode编码

    result = "a" < "b"; //true

    result = "abcdefghijk" < "b"; //true
    result = "5" < "4"; //false
    result = "5" < "40"; //false

    十六.相等运算符

    相等运算符,它可以用来判断两个值是否相等,如果相等,则返回true,否则返回false
    * - 如果对两个类型不同的变量进行相等比较,会先将其转换为相同的类型,然后再比较
    * (至于具体转换为什么类型,不定,但是大部分情况是转换Number)

    //console.log("1" == true); //true

    //字符串和布尔值比时,都转换为Number然后在比
    //console.log("2" == true); //flase
    //console.log(null == 0);//false
    //由于undefined衍生自null,所以这两个类型的值做相等比较时会返回true
    //console.log(null == undefined);//true
    //NaN不和任何值相等,包括它自己
    //console.log(NaN == NaN); //false

    var a = NaN;

    //判断a的值是否是NaN
    //console.log(a == NaN);
    /*
    * 在JS中为我们提供了一个isNaN()函数,
    * 这个函数专门可以判断一个值是否是NaN,如果是则返回true,否则返回false
    */
    //console.log(isNaN(a));

    /*
    * ===
    * - 全等运算符,可以判断两个值是否全等,如果全等则返回true,否则返回false
    * - 全等和相等的区别就是相等会做自动的类型转换,而全等不会,
    * 使用全等时,如果两个值的类型不同,直接返回false
    */

    //console.log(1 === "1"); //false
    //console.log(true === "1"); //false
    //null和undefined相等,但是不全等
    //console.log(null === undefined); //false



  • 相关阅读:
    Linux信号列表(zz)
    TCP状态转移图学习总结
    UNP学习笔记之四select和poll
    RSS2.0结构
    UNP学习笔记二简单的并发服务器(concurrent servers)
    js面向对象基础(zz)
    libevent introduction
    Linux下Makefile的automake生成全攻略(zz)
    UNP学习笔记之三POSIX Signal Handling
    关于网络编程(服务端)的一些笔记(zz)
  • 原文地址:https://www.cnblogs.com/liuyi13535496566/p/11925370.html
Copyright © 2020-2023  润新知