美文网首页iOS DeveloperReact Native开发经验集React Native开发
ReactNative入门学习笔记——ECMAScript基础知

ReactNative入门学习笔记——ECMAScript基础知

作者: QinChBeSt | 来源:发表于2017-05-08 15:16 被阅读61次

    一.ECMAScript 原始值和引用值

    在 ECMAScript 中,变量可以存在两种类型的值,即原始值和引用值。

    1.原始类型:

    ECMAScript 有 5 种原始类型(primitive type),即 Undefined、Null、Boolean、Number 和 String。

    ①.Undefined 类型:

    undefined类型只有一个undefined类型。声明未初始化的时候,变量默认就是underfined。

    例如:

    var abc;

    此时,只申明变量,未初始化,该变量将被赋予underfined。

    ②.Boolean类型:

    boolean有两个值 true 和 false (即两个 Boolean 字面量)。

    ③.Null类型:

    另一种只有一个值的类型是 Null,它只有一个专用值 null,即它的字面量。值 undefined 实际上是从值 null 派生来的,因此 ECMAScript 把它们定义为相等的。

    alert(null == undefined);//输出 "true"

    尽管这两个值相等,但它们的含义不同。undefined 是声明了变量但未对其初始化时赋予该变量的值,null 则用于表示尚未存在的对象。如果函数或方法要返回的是对象,那么找不到该对象时,返回的通常是 null。

    ④.Number 类型:

    这种类型既可以表示 32 位的整数,还可以表示 64 位的浮点数。直接输入的(而不是从另一个变量访问的)任何数字都被看做 Number 类型的字面量。

    ⑤.String类型:

    String 类型的独特之处在于,它是唯一没有固定大小的原始类型。
    字符串字面量是由双引号(")或单引号(')声明的。

    var str1 = "ES6";

    var str2 = 'ES6';

    都是正确的。

    2.引用类型:

    引用类型通常叫做类(class),也就是说,遇到引用值,所处理的就是对象。

    对象是由 new 运算符加上要实例化的对象的名字创建的。

    var obj = new Objecr();


    ①.Object对象:

    ES中所有对象都由这个对象继承而来,Object对象中所有属性和方法都会出现在其他对象中。

    Object对象具有属性:

    constructor

    对创建对象的函数的引用(指针)。对于 Object 对象,该指针指向原始的 Object() 函数。

    Prototype

    对该对象的对象原型的引用。对于所有的对象,它默认返回 Object 对象的一个实例。


    Object 对象还具有几个方法:

    --hasOwnProperty(property):

    判断对象是否有某个特定的属性。必须用字符串指定该属性。(例如,o.hasOwnProperty("name"))

    --IsPrototypeOf(object):

    判断该对象是否为另一个对象的原型。

    --PropertyIsEnumerable:

    判断给定的属性是否可以用 for...in 语句进行枚举。

    --ToString():

    返回对象的原始字符串表示。对于 Object 对象,ECMA-262 没有定义这个值,所以不同的 ECMAScript 实现具有不同的值。

    --ValueOf():

    返回最适合该对象的原始值。对于许多对象,该方法返回的值都与 ToString() 的返回值相同。

    注释:上面列出的每种属性和方法都会被其他对象覆盖。


    ②.Boolean对象

    Boolean 对象是 Boolean 原始类型的引用类型。

    要创建 Boolean 对象,只需要传递 Boolean 值作为参数:

    var oBooleanObject = new Boolean(true);


    ③.Number 对象

    Number 对象是 Number 原始类型的引用类型。

    valueOf()方法:可以得到数字对象的Number原始值。

    toFixed() 方法:可以返回的是具有指定位数小数的数字的字符串表示。

    var numberObj = new Number(15);

    alert(numberObj.valueOf() );                     //输出15;

    alert(numberObj.toFixed(2));                    //输出15.00


    ④.String对象

    String 对象是 String 原始类型的对象表示法。

    String 对象的 valueOf() 方法和 toString() 方法都会返回 String 类型的原始值。

    String对象的属性:

    length属性:字符串的字符个数。

    String对象的方法:

    charAt() 方法:返回的是包含指定位置处的字符的字符串。

    charCodeAt() 方法:返回的是包含指定位置处的字符的字符代码。

    var str = new String("hello world");

    alert(str.charAt(1));                              //输出 "e"

    alert(str.charCodeAt(1));                     //输出 "101"


    concat() 方法:用于把一个或多个字符串连接到 String 对象的原始值上。

    var str = new String("hello world");

    var str2 = str.concat("123") ;

    alert(str2);                                //输出“hello world123”


    indexOf()方法:从字符串的开头(位置 0)开始检索指定的子串在另一个字符串中的位置。

    lastIndexOf() 方法:从字符串的结尾开始检索指定的子串在另一个字符串中的位置。

    var str = new String ("hello world");

    alert(str.indexOf("e"));                        //输出 "1"

    alert(str.lastIndexOf("e"));                  //输出 "9"

    localeCompare() 方法:对字符串进行排序。

    该方法有一个参数 - 要进行比较的字符串,返回的是下列三个值之一:

    -如果 String 对象按照字母顺序排在参数中的字符串之前,返回负数。

    -如果 String 对象等于参数中的字符串,返回 0。

    -如果 String 对象按照字母顺序排在参数中的字符串之后,返回正数。

    var str = new String ("b");

    alert(str.localeCompare("a"));            //输出 "1"

    alert(str.localeCompare("b"));            //输出 "0"

    alert(str.localeCompare("c"));            //输出 "-1"

    slice() 和 substring()方法:字符串截取这两种方法返回的都是要处理的字符串的子串,都接受一个或两个参数。第一个参数是要获取的子串的起始位置,第二个参数(如果使用的话)是要获取子串终止前的位置(也就是说,获取终止位置处的字符不包括在返回的值内)。如果省略第二个参数,终止位就默认为字符串的长度。

    不同之处:对于负数参数,slice() 方法会用字符串的长度加上参数,substring() 方法则将其作为 0 处理(也就是说将忽略它)。

    例如:

    var oStringObject = new String("hello world");

    alert(oStringObject.slice("3"));                          //输出 "lo world"

    alert(oStringObject.substring("3"));                   //输出 "lo world"

    alert(oStringObject.slice("-3"));                         //输出 "rld"

    alert(oStringObject.substring("-3"));                 //输出 "hello world"

    alert(oStringObject.slice("3, -4"));                     //输出 "lo w"

    alert(oStringObject.substring("3, -4"));             //输出 "hel"

    toLowerCase()、toLocaleLowerCase()、toUpperCase() 和 toLocaleUpperCase()方法:4 种方法用于执行大小写转换。

    从名字上可以看出它们的用途,前两种方法用于把字符串转换成全小写的,后两种方法用于把字符串转换成全大写的。

    toLowerCase() 和 toUpperCase() 方法是原始的,是以 java.lang.String 中相同方法为原型实现的。

    toLocaleLowerCase() 和 toLocaleUpperCase() 方法是基于特定的区域实现的(与 localeCompare() 方法相同)。在许多区域中,区域特定的方法都与通用的方法完全相同。

    一般来说,如果不知道在以哪种编码运行一种语言,则使用区域特定的方法比较安全。

    var oStringObject = new String("Hello World");

    alert(oStringObject.toLocaleUpperCase());     //输出 "HELLO WORLD"

    alert(oStringObject.toUpperCase());                //输出 "HELLO WORLD"

    alert(oStringObject.toLocaleLowerCase());    //输出 "hello world"

    alert(oStringObject.toLowerCase());               //输出 "hello world"

    相关文章

      网友评论

        本文标题:ReactNative入门学习笔记——ECMAScript基础知

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