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

一.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"

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,445评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,889评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,047评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,760评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,745评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,638评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,011评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,669评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,923评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,655评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,740评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,406评论 4 320
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,995评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,961评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,023评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,483评论 2 342

推荐阅读更多精彩内容

  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,205评论 0 4
  • 第三章 基本概念 3.1 语法 ECMAScript标识符一般采用驼峰大小写格式,也就是第一个字母小写,剩下的每个...
    小雄子阅读 526评论 0 1
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,567评论 18 399
  • 青春不过是乘着公交,数着站牌。所有人都有所有人的目的地,就像你一样。那我们又何必伤怀离别,不过是每个人都在回家。你...
    Oceansky阅读 211评论 0 0
  • 接了季言之亲自分配的任务,林妮妮这个国庆就像是在学生会总办扎了根一样。每天早上八点到晚上六点,除了吃饭倒水上厕所,...
    小钱钱布兰妮会写诗阅读 301评论 0 1