zoukankan      html  css  js  c++  java
  • JavaScript中基本知识

    变量

    每个变量仅仅是一个用于保存值的占位符而已。

    用var操作符定义的变量将成为定义该变量的作用域中的局部变量。

    省略var操作符可以定义一个全局变量。但是不推荐这种做法,因为在局部作用域中定义的全局变量很难维护。

    数据类型

    基本数据类型:①Undefined②Null③Boolean④Number和⑤String

    typeof操作符

    ①“undefined”——如果这个值未定义

    ②“boolean”——如果这个值是布尔值

    ③“string”——如果这个值是字符串

    ④“number”——如果这个值是数值

    ⑤“object”——如果这个值是对象或者null

    ⑥“function”——如果这个值是函数

    var message="some string";

    alert(typeof message);

    typeof操作符的操作数可以是变量,也可以是数值字面量。

    Null类型是第二个只有一个值的数据类型,这个特殊的值是null。null值表示一个空对象指针,而这也正是使用typeof操作符检测null值时会返回“object”的原因。

    如果定义的变量准备在将来用于保存对象,那么最好将该变量初始化为null,而不是其他值。

    Boolean类型:Boolean类型是ECMAScript中使用得最多的一种类型,该类型只有两个字面值:true和false。这两个值与数字值不一样,因此true不一定等于1,而false也不一定等于0。

    要将一个值转换为其对应的Boolean值,可以调用转型函数Boolean()函数。

    var message="Hello World!";

    var messageasBoolean=Boolean(message);

    Number类型

    在进行算术计算时,所有以八进制和十六进制表示的数值最终都将被转换成十进制数值。

    ①浮点数值:所谓浮点数值,就是该数值中必须包含一个小数点,并且小数点后面必须至少有一位数值。var floatNum1=1.1;

    由于保存浮点数值需要的内存空间是保存证书的两倍,因此ECMAScript会不失时机地将浮点数值转换为整数值。

    ②NaN:即非数值(Not a Number)是一个特殊的数值,这个数值用于表示一个本来要返回数值的操作数未返回数值的情况。

    特点(1)首先,任何涉及NaN的操作都会返回NaN。(2)NaN与任何值都不相等,包括NaN本身。

    isNaN()函数:这个函数接受一个参数,该参数可以是任何类型,而函数会帮我们确定这个参数是否“不是数值”。isNaN()在接收到一个值之后会尝试将这个值转换为数值。某些不是数值的值会直接转换为数值。而任何不能被转换为数值的值都会导致这个函数返回true。

    ③有三个函数可以把非数值转换为数值:Number()、parseInt()和parseFloat()

    转型函数Number()可以用于任何数据类型,而另外两个则专门用于把字符串转换成数值。

    处理整数的时候更常用到parseInt()函数,用parseInt()函数转换空字符串会返回NaN。

    转换时使用参数:var num=parseInt("0xAF",16);//175,参数表示按十六进制解析

    parseFloat()只解析十进制,从第一个字符(位置0)开始解析每个字符,而且一直解析到字符串末尾,或者解析到遇见一个无效的浮点数字字符为止。它始终都会忽略前导的零。

    String类型

    String类型用于表示由零或多个16位Unicode字符组成的字符序列,即字符串。字符串可以由双引号或者单引号表示。

    ①字符字面量:String数据类型包含一些特殊的字符字面量,也叫转义序列,用于表示非打印字符,或者具有其他用途的字符。

    ②字符串的特点:ECMAScript中的字符串是不可变的。也就是说,字符串一旦创建成功,它们的值就不能改变。要改变某个变量保存的字符串,首先要销毁原来的字符串,然后再用另一个包含新值的字符串填充该变量。

    ③转换为字符串:要把一个值转换为一个字符串有两种方式,第一种是使用几乎每个值都有的toString()方法,这个方法唯一要做的就是返回相应值的字符串表现。

    数值、布尔值、对象和字符串值都有toString()方法。但是null和undefined值没有这个方法。

    调用toString()方法不必传递参数。

    在不知道要转换的值是不是null或者undefined的情况下,还可以使用转型函数String(),这个函数能够将任何类型的值转换成字符串。

    String()函数遵循以下转换规则:

    如果值有tiString()方法,则调用该方法(没有函数)并返回相应的结果

    如果值是null,则返回“null”

    如果值是undefined,则返回“undefined”

    Object类型:ECMAScript中的对象其实就是一组数据和功能的集合。对象可以通过执行new操作符后跟要创建的对象类型的名称来创建。

    object类型所具有的任何属性和方法也同样存在于更具体的对象中。

    object的每个实例都具有下列属性和方法

    constructor:保存着用于创建当前对象的函数。

    hasOwnProoerty(propertyName):用于检查给定的属性在当前对象实例中是否存在。其中作为参数的属性名(propertyName)必须以字符串形式指定。

    isPrototypeOf(object):用于检查传入的对象是否是传入对象的原型

    propertyIsEnumerable(propertyName):用于检查给定的属性是否能够使用for-in语句来枚举,与hasOwnProoerty()方法一样,作为参数的属性名必须以字符串形式指定。

    toLocaleString():返回对象的字符串表示,该字符串与执行环境的地区对应

    toString():返回对象的字符创表示

    valueOf():返回对象的字符串、数值或者布尔值表示,通常与toString()方法的返回值相同。

    操作符

    ECMA-262描述了一组用于操作数据值的操作符,包括算术操作符(如加好和减号)、位操作符、关系操作符和相等操作符。

    一元操作符:只能操作一个值的操作符叫做一元操作符

    ①递增、递减操作符

    ②一元加和减操作符

    位操作符

    位操作符用于在最基本的层次上,即按内存中表示数值的位来操作数值。

    对于有符号的整数,32位中的前31位用于表示整数的值。第32位用于表示数值的符号:0表示正数,1表示负数。

    按位非(NOT)、按位与(AND)、按位或(OR)、按位异或(XOR)、左移、有符号的右移、无符号的右移

    布尔操作符

    ①逻辑非:这个操作符会返回一个布尔值,逻辑非操作符首先会先将它的操作数转换为一个布尔值。然后再对其取反。

    ②逻辑与:逻辑与操作符由两个和号(&&)表示,有两个操作数:逻辑与操作可以应用于任何类型的操作数,而不仅仅是布尔值。

    ③逻辑或:逻辑或操作符由两个竖线符号(||)表示,有两个操作数。

    乘性操作符:

    ECMAScript定义了3个乘性操作符:乘法、除法和求模。

    加性操作符:加法、减法、

    关系操作符:

    如果两个操作数都是数值,则执行数值比较。

    如果两个操作数都是字符串,则比较两个字符串对应的字符编码值。

    如果一个操作数是数值,则将另一个操作数转换为一个数值,然后执行数值比较。

    如果一个操作数是对象,则调用这个对象的valueOf()方法,用得到的结果按照前面的规则执行比较。如果对象没有valueOf()方法,则调用toString()方法,并用得到的结果根据前面的规则执行比较。

    如果一个操作数是布尔值,则先将其转换为数值,然后再执行比较。

    在比较字符串时,实际比较的是两个字符串中对应位置的每个字符的字符编码值

    相等操作符

    对象的比较:

    相等和不相等

    相等的操作符由两个等于号(==)表示,如果两个操作符相等,则返回true,而不相等操作符由叹号后跟等于号(!=)表示,如果两个操作数不相等,则返回true。这两个操作符都会先转换操作数(通常称为强制转型),然后再比较它们的相等性。

    全等和不全等

    全等由(===)表示,它只在两个操作数未经转换就相等的情况下返回true

    条件操作符

    赋值操作符

    简单的赋值操作符由等于号(=)表示,其作用就把右侧的值赋给左侧的变量

    逗号操作符:使用逗号操作符可以在一条语句中执行多个操作。逗号操作符多用于声明多个变量;但除此之外,逗号操作符还可以用于赋值。

    语句

    if语句 if(condition) statement1 else statement2

    其中的condition(条件)可以是任意表达式;而且对这个表达式求值的结果不一定是布尔值。ECMAScript会自动调用Boolean()转换函数将这个表达式的结果转换为一个布尔值。

    do-while语句

    do-while语句是一种后测试循环语句,即只有在循环体中的代码执行之后,才会测试出口条件。在对条件表达式求值之前,循环体内的代码至少会被执行一次。

    while语句:while语句属于前测试循环语句。也就是说,在循环体内的代码被执行之前,就会对出口条件求值。因此,循环体内的代码有可能永远不会被执行。

    for语句

    for语句也是一种前测试循环语句,但它具有在执行循环之前初始化变量和定义循环后要执行的代码的能力。

    for-in语句:for-in语句是一种精准的迭代语句,可以用来枚举对象的属性。

    label语句  label:statement

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

    alert(i);

    }

    break和continue语句

    break和continue语句用于在循环中精确地控制代码的执行。其中break语句会立即退出循环,强制继续执行循环后面的语句。而continue语句虽然也会立即退出循环,但退出循环后会从循环的顶部继续执行。

    with语句:with语句的作用是将代码的作用域设置到一个特定的对象中

    with(expression) statement;

    switch语句

    函数

    通过函数可以封装任意多条语句。

    ECMAScript中的函数在定义时不必指定是否返回值。实际上,任何函数在任何时候都可以通过return语句后跟要返回的值来实现返回值。

  • 相关阅读:
    理解RabbitMQ中的AMQP-0-9-1模型
    深入分析Java反射(八)-优化反射调用性能
    一张图帮你记忆,Spring Boot 应用在启动阶段执行代码的几种方式
    Java equals 和 hashCode 的这几个问题可以说明白吗?
    如何妙用Spring 数据绑定机制?
    Lombok 使用详解,简化Java编程
    Java升级那么快,多个版本如何灵活切换和管理?
    手把手教你定制标准Spring Boot starter,真的很清晰
    Java12 Collectors.teeing 你需要了解一下
    Maven optional关键字透彻图解
  • 原文地址:https://www.cnblogs.com/yuanxinru321/p/6747379.html
Copyright © 2011-2022 走看看