JavaScript基础(二)

数据类型

1.String类型
    String类型用于表示由0或多个16位Unicode字符组成的字符序列,即字符串。字符串可以由双引号或单引号表示。
  (1)字符字面量
String数据类型包含一些特殊的字符字面量,也叫转义序列,用于表示非打印字符,或者具有其他用途的字符。这些字符字面量如下表所示:
在这里插入图片描述
任何字符串的长度都可以通过访问其length属性取得。
  (2)字符串的特点
  ECMAScript中的字符串是不可变的。要改变某个变量保存的字符串,首先要销毁原来的字符串,然后再用另一个包含新值的字符串填充该变量。
  (3)转换为字符串
  两种方式:toString()方法和转型函数String()。
  在不知道要转换的值是不是null或undefined的情况下,可以使用转型函数String(),这个函数能够将任何类型的值转换为字符串。
    String()函数遵循下列转换规则:
    ①如果值有toString()方法,则调用该方法(没有参数)并返回相应的结果。
    ②如果值是null,则返回“null”。
    ③如果值是undefined,则返回“undefined”。
2. Object类型
    对象可以通过执行new操作符后跟要创建的对象类型的名称来创建。而Object类型的实例并为其添加属性和(或)方法,就可以创建自定义对象。

var o = new Object(); 

如上述代码,即可创建一个Object类型的对象。
    在ECMAScript中,Object类型是所有它的实例的基础。 换句话说,Object类型所具有的任何属性和方法也同样存在更具体的对象中。
    Object的每个实例都具有下列属性和方法:
    ①Constructor:保存着用于创建当前对象的函数。
    ②hasOwnProperty(propertyName):用于检查给定的属性在当前对象实例中(而不是在市里的原型中)是否存在。其中,作为参数的属性名(propertyName)必须以字符串形式指定。
    ③isPrototypeOf(object):用于检查传入的对象是否是另一个对象的原型。
    ④propertyIsEnumberable(propertyName):用于检查给定的属性是否能够使用for-in语句来枚举。与hasOwnProperty(propertyName)一样,作为参数的属性名必须以字符串形式指定。
    ⑤toLocalString():返回对象的字符串表示,该字符串与执行环境的地区对应。
    ⑥toString():返回对象的字符串表示。
    ⑦valueOf():返回对象的字符串、数值或布尔值表示。通常与toString()方法的返回值相同。

操作符

1.一元操作符
    只能操作一个值的操作符叫做一元操作符
    (1)递增和递减操作符
        前置型和后置型。(++在前,先计算;++在后,后计算)
    递增和递减操作符遵循下列规则:
    ①在应用于一个包含有效数字字符的字符串时,先将其转换为数字值,再执行加减1的操作。——字符串变量变成数值变量。
    ②在应用与一个不包含有效数字字符的字符串时,将变量的值设置为NaN。——字符串变量变成数值变量。
    ③在应用与布尔值false/true时,先将其转换为0/1再执行加减1的操作。——布尔值变量变成数值变量。
    ④在应用于浮点数值时,执行加减1的操作。
    ⑤在应用与对象是时,先调用对象的valueOf()方法以取得一个可供操作的值。然后应用前面的规则。如果结果是NaN,则在调用toString()方法后再应用前面的规则。——对象变量变成数值变量。
2.一元加和减操作符
    一元加操作符以一个+表示,放在数值前面,不会对数值产生任何影响。
    但一元减操作符应用于数值时,该值会变成负数。
3.位操作符
    按内存中表示数值的位来操作数值。(32位)
    对于有符号的整数,32位中的前31位用于表示整数的值。第32位用于表示数值的符号(0正,1负)
    在对特殊的NaN和Infinity值应用位操作时,这两个值会被当成0来处理。
        ①按位非(NOT)用‘~’表示。(直接取反)
        ②按位与(AND)用‘&’表示。(同一则一,其余为零)
        ③按位或(OR)用
‘|’表示。(同零则零,其余为一)
        ④按位异或(XOR)用‘^’表示。(先来取反,接着来或)
        ⑤左移,用‘<<’表示,这个操作符会将数值的所有为向左移动指定的位数。(向左移位后,右侧多出的空位用零填充。)左移不会影响符号位
        ⑥右移,用‘>>’表示,这个操作符会将数值的所有为向右移动指定的位数。(向右移位后,右侧多出的空位用零填充。)右移不会影响符号位
        ⑦无符号右移,用‘>>>’表示。正数无符号右移与右移相同。负数无符号右移会把负数的二进制码变成正数的二进制码。
4.布尔操作符
        (1)逻辑非(!)
                几个特殊情况:
                ①操作数是一个对象/非空字符串/任意非零数值(包括Infinity),返回false。
                ②操作数是一个空字符串/数值0/null/undefined,返回true。
        (2)逻辑与(&&)
                几个特殊情况:
                ①第一个操作数是对象,返回第二个操作数。
                ②第二个操作数是对象,只有在第一个操作数的求值结果为true的情况下才会返回该对象。
                ③两个操作数都是对象,返回第二个操作数。
                ④有一个操作数是null,返回null。
                ⑤有一个操作数是NaN,返回NaN。
                ⑥有一个操作数是undefined,返回undefined。
        逻辑与操作属于短路操作,如果第一个操作数能够决定结果,那么不会再对第二个操作数求值。
        (3)逻辑或(||)
                几个特殊情况:
                ①第一个操作数是对象,返回第一个操作数。
                ②第一个操作数求值结果为false,返回第二个操作数。
                ③两个操作数都是对象,返回第一个操作数。
                ④两个操作数都是null,返回null。
                ⑤两个操作数都是NaN,返回NaN。
                ⑥两个操作数都是undefined,返回undefined。
        逻辑或操作属于短路操作,如果第一个操作数求值结果为true,那么不会再对第二个操作数求值。
5.乘性操作符
    (1)乘法(*),用于计算两个数字的乘积。
    (2)除法(/),执行第二个操作数除第一个操作数的计算。
    (3)求模(%),求余数。
6.加性操作符
    (1)加法(+),计算两个数字的和。
    (2)减法(-),计算两个数字的差。
7.关系操作符
    小于(<)、大于(>)、小于等于(<=)和大于等于(>=)。返回布尔值。
8.相等操作符
        (1)相等(==)和不相等(!=)
        (2)全等(===)和不全等(!==
9.条件操作符

variable = boolean_expression ? true_value :false_value;

10.赋值操作符(=)
11.逗号操作符
        用于在一条语句中执行多个操作。

语句

1.if语句
2.do-while语句
3.while语句
4.for语句
5.for-in语句
    是一种精准的迭代语句,可以用来枚举对象的属性。(顺序不可预测)若表示要迭代的对象为null或undefined,不报错但也不再循环。
6.label语句
    在代码中添加标签。
语法为:

label : statement;

示例:

start : for (var i = 0 ; i < count ; i++){
	alert(i);
}

start为标签,可以由break或continue语句引用。
加标签的语句一般都要与for语句等循环语句配合使用。
7.break和continue语句
    break语句会立即退出循环,强制继续执行循环后面的语句。
    continue语句也立即退出循环,但退出循环后会从循环的顶部继续执行。
break和continue语句都可以和label语句联合使用,返回代码中特定的位置。这种情况多发生在循环嵌套的情况下。
8.with语句
    作用是将代码的作用与设置到一个特定的对象中。
语法如下:

with (expression) statement;

示例:

var qs = location.search.substring(1);
var hostName = location.hostname;
var url = location.href;

上面几行代码都包含location对象。 如果使用with语句,可以如下所示:

with(location){
	var qs = search.substring(1);
	var hostName = hostname;
	var url = href;
}

使用with语句关联了location对象。在with语句的代码块内部,每个变量首先被认为是一个局部变量,如果局部环境中找不到该变量的定义,就会查询location对象中是否有同名的属性、如果有,则以location对象属性的值作为变量的值。
严格模式下不允许使用with语句,否则会视为语法错误。
9.switch语句

函数

1.函数执行完return语句之后停止并立即退出。
   位于return后的任何代码永远不会执行。
   return也可以不带有任何返回值,这种情况下,函数停止执行后返回undefined值。
   限制:
        不能把函数或参数命名为eval或arguments。
2.理解参数
    可以向ECMAScript函数传递任意数量的参数,并且可以通过arguments对象来访问这些参数。
    arguments对象与数组类似,可以使用方括号语法访问他的每一个元素,使用length属性来确定传递进来多少个参数。
    命名的参数只提供便利,但不是必需的。
3.不能重载
    如果定义了两个名字相同的函数,则该名字只属于后定义的函数。

    今天学习了JavaScript的数据类型、语法和函数部分,明天也要加油呀!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值