zoukankan      html  css  js  c++  java
  • JS数据类型详解

    Undefined类型

    该类型只有一个值就是undefined

    在定义一个变量的时候没有赋初值,默认就是undefined

    var box = undefined; //该操作没有任何意义

    Boolean类型(类class)

    这个类型有两个值 true false

    逻辑运算:等于(==)、全等(===)、不等于(!=)、取反(!)

    在JS中,==表示比较(只相等就可以,可以是转换之后的值),=表示赋值,===表示全等判断(表明了值以及类型都必须相等)

    Boolean() 用来进行数据类型的转换,将其他数据类型转换为Boolean类型

    0、NaN、""、null、undefined是可以直接转换为false的(自身可以转换)

    Number类型

    该数值中必须包含一个小数点,并且小数点后面必须至少有一位非零数字

    var box = 7.8;
    
    var box = .8; //不推荐大家使用,可读性不强
    
    var box = 3.0; //对于这样的数,js底层会进行判断,会自动转换为整型
    
    //(原因:因为浮点型存储空间是整型的两倍,节省内存空间)

    JS在做运算时不严谨

    console.log((0.1 * 10 + 0.2 * 10) / 10);    //0.3
    console.log(0.1 + 0.2 == 0.3);    //false

    toFixed(n) 保留n位有效数字,返回一个字符串

    将数值调用toString()转换为字符串(能够进行四舍五入)

    NaN:表示一个本来要返回数字类型的值,但是没有正确的返回数字类型

    12/0(java中会报错)

    0/0 isNaN() 是在window中存在的一个方法,会有数据类型的转换

    Number转型函数有三个:Number()、parseInt()、parseFloat()

    Number(); 用于任何数据类型转换成数值

    parseInt(); 从左往右寻找能认识的数字,找到一个不认识的就停止,返回之前认识的(如果最开始就不认识则返回NaN),不认识小数点

    parseFloat(); 比parseInt多认识一个小数点

    转型为Number有三个方法:

    1、Number() 适用于任意数据类型的转换

    2、parseInt()、parseFloat() 适用于字符串的转换

    Number(n) 将n强制的转换为数值型

    var box = "25x";
    console.log(Number(box));    //NaN

    true → 1  false → 0

    var box = null;    //先将null转换为false,然后变为0
    var box = undefined;    //NaN
    var box = "";    //0

    对于对象转数值:首先调用valueof(),如果没有然后再调用toString();

    String类型

    String  Number  Boolean 包装类

     ASCII

    A   65  a   97  0   48

    Z   90  z  122    9   57

    创建String类型的两种方式

    1、字面量的形式(推荐大家使用)

    2、new运算符的形式

    var box = "king";
    var box1 = new String("king");

    String.prototype 可以用来查看String类型的原型对象上所有的方法和属性,任何字符串都可以使用String类型的所有方法和属性

    length属性:返回字符串的长度

    String的常见方法:

    1、charAt(index); 返回指定索引位置的字符,index:索引值

    2、charCodeAt(); 返回指定索引位置的字符的ASCII码值

    console.log(str.charCodeAt(3));

    3、字符串的合并(可以通过加号运算符来进行替代)

    concat(str1,str2...)

    var str = "welcome to my blog!good good study!day day up!";
    var str1 = "you can you up";
    console.log(str.concat(str1));

    扩充:+号运算符也可以作为字符串的连接运算符

    字符串的两个查找位置的方法:

    indexof(str, [start]); 查找指定字符(字符串)在目标字符串中出现的首个位置的索引值(此方法接受第二个参数,表明从哪一个位置开始进行查找)

    lastIndexof(str, [start]); 查找指定字符(字符串)在目标字符串中出现的首个位置的索引值(从后往前找)

    这两个方法有一个共同的特性:就是没有找到匹配的则返回-1

    String其他方法

    search(字符) 查找字符是否出现,返回的是查找到的字符出现的位置(支持正则表达式)

    用来截取字符串

    1、slice(start, end) 该方法操作过后的字符串不会发生改变

      start:截取的起始位置的索引值

      end:结束位置的索引值

      该方法包含起始位置不包含结束位置

      当只传递一个参数的时候,默认截取到字符串的结束位置

      一个参数都没有,截取全部字符

      该方法可以传递负数:计算规则 索引值 = 负数 + 字符串长度

      当第一个参数比第二个参数要大的时候,返回"";

    2、substring(start, end) 该方法操作过后的原字符串不会发生改变

      start:截取的起始位置的索引值

      end:结束位置的索引值

      包含开始不包含结束

      传递一个参数,默认截取到末尾  str.substring(1)

      一个参数不传,默认截取全部

      当第一个参数比第二个参数要大的时候,会自动调整两个参数的位置(将小的放在前面,大的放在后面)

      在传递负数的时候,此方法会将负数变成0

    3、substr(start, 截取的长度) 从起始位置开始,截取指定长度的字符串,原字符串没有发生改变

      start:截取的起始位置的索引值

      第二个参数:要截取的长度

      当一个参数都没有的时候,默认截取全部字符串

      当只有一个参数,默认从起始位置到结束位置

      该方法支持负数的写法

      计算规则 索引值 = 负数 + 字符串长度

    总结:一个参数都不传,这三个方法默认都截取全部字符串

      传递一个参数,都是从起始位置截取到结束位置

      截取过后的原字符串都不会发生改变

    字符串的拆分:

    split(规则):将一个字符串按照一定的规则拆分成为数组

    规则可以是子字符串,也可以通常与数组的join方法来实现互相的转换

    字符串的替换:

    replace(被替换的字符, 用来替换的字符)

    可以接受正则表达式

    str.replace('o', '欧')

    默认只能替换第一个

    如果想实现全部替换,需要借助正则表达式来进行使用

    str.replace(/o/g, '欧') g代表全局匹配

    toLowerCase(); 将字符串转化为小写格式,并且返回一个新的字符串,原字符串没有发生改变

    toUpperCase(); 将字符串转化为大写格式,并且返回一个新的字符串,原字符串没有发生改变

    Object类型

    js中万物皆对象

    类是对象的具体细分,实例是类的具体表现

    创建对象有三种方式

    1、字面量的形式

    var box = {};

    2、new运算符的形式

    var box = new Object();

    3、Object,create({}) //不常用

    var obj = {
        name:"king"
    };
    var box = Object.create(obj);

    对象中可以包含任意的数据类型

    key: value 一 一对应的

    key:属性名

    value:属性值

    每一个键值对之间都是以逗号进行分割的,最后一个不需要任何的标点符号

    一个对象中属性名不能重复

    对象两种获取值的方式

    1、通过 . 运算符 点运算符后面接的都是确定的属性名

    parent.job = “程序猿”

    2、通过[ ] 中括号里面可以是一个字面量,也可以是一个变量名

    var wg = "weight";
    parent[wg] = "70kg";
    parent['weight'] = "70kg";

    如果没有对应的属性,获取值会的得到一个undefined

    在进行parent.job = "程序猿";操作时,如果原本对象中存在job属性则是对该属性的重新赋值,如果没有该属性就是新增该属性

    删除对象上的属性:

    delete parent.wg

    对象中存在一个遍历的循环

    for (当前循环到的属性名 in 对象名)

    实现:

    for (var item in parent) {
        // statement
    }
  • 相关阅读:
    ASP 调用dll(VB)及封装dll实例
    C#中的Dictionary简介
    C#中Dictionary、ArrayList、Hashtable和Array的区别
    类 Array Arraylist List Hashtable Dictionary
    利用ASP.NET AJAX的Timer讓GridView每隔一段時間做到自動換頁的功能
    nvmw install 失败. 需修改"Msxml2.XMLHTTP"为"Msxml2.ServerXMLHTTP"
    cyark
    [001] winnie the pooh
    把你的英语用起来-七天行动-置之死的而后生
    安卓模拟器还是"genymotion"最靠谱.
  • 原文地址:https://www.cnblogs.com/crazier/p/12642640.html
Copyright © 2011-2022 走看看