• JS高级程序设计笔记-ECMA基础


    一、原始值和引用值

    原始值:存储在栈(stack)中的简单数据段,它们的值直接存储在变量访问的位置。

    引用值:存储在堆(heap)中的对象,存储在变量处的值是一个指针,指向存储对象的内存处。

    二、原始类型:(基本数据类型)

    undefined、null、boolean、number、string

    三、typeof运算符(判断基本数据类型)

    输出结果:undefined、boolean、number、string、object

    1、undefined

    当一个未声明的变量和一个声明但并未初始化的变量使用typeof都会输出undefined,如下代码所示

    var value1;
    //var value2
    console.log(typeof value1);//undefined
    console.log(typeof value2);//undefined

    PS:当函数无明确返回值时,返回的也是undefined。

    2、null类型

    undefined派生自null。null表示尚未存在的对象。

    3、number类型

    (1)八进制:首数字为0;

    (2)十六进制:首数字为0x;

    (3)ECMAScript默认把6个或6个以上的前导0的浮点数转换为科学计数法;

    (4)几个被定义为Number类型的特殊值:

    Number.MAX_VALUE

    Number.MIN_VALUE

    (5)isFinit()方法:确定该数不是无穷大

    (6) NaN (非数),特性:不能用于算数计算;

                    与自身不相等;

    (7) isNaN()方法:确定是否为NaN;

    4、String类型

    首字符从位置0开始,字符串最后一个字符的位置是字符串的长度减1;

    四、转换

    1、转换成字符串:toString()方法

    Boolean类型:输出“true”或“false”

    Number类型:根据两种模式:

           默认模式:相应数字值得字符串输出;

           基模式:输出不同进制形式数字对应的字符串;

    2、转换成数字

    只有对string类型调用这些方法才能正确运行,对其他类型返回NaN;

    parseInt():

    运行机制:从位置0开始查找判断是否为有效数字,如果不是返回NaN,如果是则继续向后查找,直到找到非有效数字,将之前的字符串转换为数字。

    PS:parseInt()方法有基模式,将二进制、八进制、十六进制的字符串转化为整数,由第二个参数指定。

    parseFloat():

    运行机制:从位置0开始查找每个字符,直到出现第一个非有效字符,将之前的字符串转化为数字。第一个出现的小数点是有效字符,第二个是无效的。

    PS:字符串必须以十进制形式表示浮点数,不能用八进制或十六进制形式,没有基模式。

    3、强制类型转换

    Boolean(value)

    (1)转换成Boolean类型;

    (2)转换的值至少是有一个字符的字符串、非0数字或对象时,返回true;

    (3)转换的值为空字符串、数字0、undefined、Null,返回false;

    Number(value):转换成数字;

    (1)与parseInt(),parseFloat类似,但转化的是整个值,不是部分值。如果字符串值能完整的被转换,Number()将判断调用parseInt()还是parseFloat()。

    String(value):将任何值转换成字符串;

    五、引用类型

    1、Object类

    2、Boolean类

    3、Number类

    (1)toFixed()方法:返回具有指定位数小数的数字的字符串表示,参数是几说明了应该显示几位小数。

        toExponential()方法:返回科学计数法表示的数字的字符串形式。参数是指定要输出的小数的位数。

        toPrecision()方法:参数表示数的数字总数,不包括指数。

    PS:这些方法都会进行舍入操作。

    4、String类

    (1)valueOf()和toString()方法都会返回string类型的原始值;

    var oStr = new String("hello");
    console.log(oStr.valueOf() === oStr.toString()) //true

    (2)length属性

    (3)charAt():返回包含指定位置处的字符的字符串;

        charCodeAt():返回包含指定位置处的字符的字符代码;

        concat():将一个或多个字符串连接到String对象的原始值上,该方法会保持原始的String对象不变;

    (4)indexOf():从位置0开始检索,返回指定的子串在另一个字符串中的位置。(-1表示没有找到)

        lastIndexOf():从字符串结尾开始检索,返回指定的子串在另一个字符串中的位置。(-1表示没有找到)

    (5)localeCompare():对字符串值进行排序,参数是要进行比较的字符串;

    (6)slice():第一个参数是要获取的子串的起始位置,第二个参数是要获取子串终止前的位置,省略的话就默认为字符串的长度。

        substring():同上;

    PS:当两者参数为负数时有些不同;slice()会用字符串长度加参数,substring将其作为0处理(忽略);

    (7)toLowerCase():字符串转换为全小写;

        toUpperCase():转化成全大写;

    5、instanceof运算符

     xxx instanceof Object(Object/Array/Date/Function);

    六、运算符

    1、delete:删除对以前定义的对象属性或方法的引用

    1 var o =new Object();
    2 o.name = "coco";
    3 console.log(o.name);//coco
    4 delete o.name;
    5 console.log(o.name);//undefined

    PS:不能删除开发者未定义的属性和方法,如原始的ECMAScript方法。

    2、void:对任何值都返回undefined,通常用于避免输出不应该输出的值。

    <a href="javascript:void(window.open('about:blank'))">click</a>

    3、(1)前增量运算符:(++num,--num)

     先加减后运算;

    (2)后增量运算符:(num++,num--)

    先运算后加减;

    4、一元运算符

    5、位运算符

    (1)位运算NOT(~)

    (2)位运算AND(&)

    (3)位运算OR(|)

    (4)位运算XOR(^)

    (5)左移运算(<<)

    (6)有符号右移运算(>>)

    (7)无符号右移运算(>>>)

    6、Boolean运算符

    (1)逻辑NOT(!)

    PS:两个!!给出变量真正的boolean值;

    (2)逻辑AND(&&)

    PS:如果第一个运算数是false,则不再计算第二个运算数,结果为false。

    (3)逻辑OR(||)

    PS:如果第一个运算数是true,则不再计算第二个运算数,结果为true。

    7、乘性运算符

    (1)乘法运算符(*)

    (2)除法运算符(/)

    (3)取模运算符(%)

    8、加性运算符

    (1)加法运算符(+)

    (2)减法运算符(-)

     9、关系运算符

    10、等性运算符

    (1)等号(==)和非等号(!=)

    如果一个运算数是Boolean值,在检查相等性之前,将它转换成数字值;false->0;true->1;

    如果一个运算数是字符串,另一个是数字,在检查相等性之前,尝试将字符串转换成数字;

    null与undefined相等;

    不能将null和undefined转换成其他值;

    (2)全等号(===)和非全等号(!==)

    只有在无需类型转换运算数就相等的情况下才返回true;

    11、条件运算符(三元)

    12、赋值运算符(=、+=、-=、*=、/=、%=、>>=、<<=)

    七、语句

    1、if语句

    2、迭代语句

    (1)do-while语句:计算表达式之前至少会执行循环主体一次;

    (2)while语句

    (3)for语句

    (4)for-in语句:遍历对象的可枚举属性;

    (5)break语句:立即退出循环;

        continue语句:退出当前循环,进行下一次循环;

    (6)with语句

    (7)switch语句

    八、函数

    1、无重载

    2、arguments

    length属性

    3、Function类

     4、闭包

  • 相关阅读:
    2019.8.16
    一种抠环的办法
    [HAOI2015]树上染色
    有关树形背包
    2019.7.27
    有关矩阵快速幂
    2019.7.25
    欧拉函数(转载)
    2019.7.22
    phpstudy集成环境安装redis扩展
  • 原文地址:https://www.cnblogs.com/nerrol/p/8289120.html
Copyright © 2020-2023  润新知