• 数据类型、==与===、数组、对象、变量、字符串


    console.log();
    alert();

    prompt();

    confirm();

    1、数据类型:

    Number(整数、浮点数、NaN、Infinity)、字符串、布尔值、数组、null、undefined

    注意:JavaScript把nullundefined0NaN和空字符串''视为false,其他值一概视为true

    2、==与===
    ==比较,它会自动转换数据类型再比较
    ===比较,它不会自动转换数据类型,如果数据类型不一致,返回false,如果一致,再比较
    推荐使用===

    3、数组
    数组是一组按顺序排列的集合,集合的每个值称为元素。数组可以包括任意数据类型
    定义:  -- [1,2,3.14,'Hello',null,ture];
         --new Array(1,2,3);

    Array长度:使用length

    改变元素值:通过索引的方式

    indexOf():来搜索一个指定的元素的位置

    slice():就是对应String的substring()版本,它截取Array的部分元素,然后返回一个新的Array
    (注意:slice()的起止参数包括开始索引,不包括结束索引;如果不给slice()传递任何参数,它就会从头到尾截取所有元素。利用这一点,我们可以很容易地复制一个Array)

    push():Array的末尾添加若干元素

    pop():Array的最后一个元素删除掉

    1 var arr = [1, 2];
    2 arr.push('A', 'B'); // 返回Array新的长度: 4
    3 arr; // [1, 2, 'A', 'B']
    4 arr.pop(); // pop()返回'B'
    5 arr; // [1, 2, 'A']
    6 arr.pop(); arr.pop(); arr.pop(); // 连续pop 3次
    7 arr; // []
    8 arr.pop(); // 空数组继续pop不会报错,而是返回undefined
    9 arr; // []

    unshift():向Array的头部添加若干元素
    shift():把Array的第一个元素删掉

    1 var arr = [1, 2];
    2 arr.unshift('A', 'B'); // 返回Array新的长度: 4
    3 arr; // ['A', 'B', 1, 2]
    4 arr.shift(); // 'A'
    5 arr; // ['B', 1, 2]
    6 arr.shift(); arr.shift(); arr.shift(); // 连续shift 3次
    7 arr; // []
    8 arr.shift(); // 空数组继续shift不会报错,而是返回undefined
    9 arr; // []

    sort():可以对当前Array进行排序,它会直接修改当前Array的元素位置,直接调用时,按照默认顺序排序(注意:不是从小到大排序)
    reverse():把整个Array的元素给掉个个,也就是反转

    splice():修改Array的“万能方法”,它可以从指定的索引开始删除若干元素,然后再从该位置添加若干元素

     1 var arr = ['Microsoft', 'Apple', 'Yahoo', 'AOL', 'Excite', 'Oracle'];
     2 // 从索引2开始删除3个元素,然后再添加两个元素:
     3 arr.splice(2, 3, 'Google', 'Facebook'); // 返回删除的元素 ['Yahoo', 'AOL', 'Excite']
     4 arr; // ['Microsoft', 'Apple', 'Google', 'Facebook', 'Oracle']
     5 // 只删除,不添加:
     6 arr.splice(2, 2); // ['Google', 'Facebook']
     7 arr; // ['Microsoft', 'Apple', 'Oracle']
     8 // 只添加,不删除:
     9 arr.splice(2, 0, 'Google', 'Facebook'); // 返回[],因为没有删除任何元素
    10 arr; // ['Microsoft', 'Apple', 'Google', 'Facebook', 'Oracle']

    concat():把当前的Array和另一个Array连接起来,并返回一个新的Array

    (注意:concat()方法并没有修改当前Array,而是返回了一个新的Array;oncat()方法可以接收任意个元素和Array,并且自动把Array拆开,然后全部添加到新的Array

    1 var arr = ['A', 'B', 'C'];
    2 arr.concat(1, 2, [3, 4]); // ['A', 'B', 'C', 1, 2, 3, 4]

    join():把当前Array的每个元素都用指定的字符串连接起来,然后返回连接后的字符串;如果Array的元素不是字符串,将自动转换为字符串后再连接。

    推荐使用:[]

    注意: --直接给Arraylength赋一个新的值会导致Array大小的变化

        --如果通过索引赋值时,索引超过了范围,同样会引起Array大小的变化

        --在编写代码时,不建议直接修改Array的大小,访问索引时要确保索引不会越界

    4、对象
    JavaScript的对象是一组由键-值组成的无序集合。
    键:都是字符串类型
    值:任意数据类型
    怎样创建对象?

      --用一个{...}表示一个对象,键值对以xxx: xxx形式申明,用,隔开

    如何访问对象属性?

      --通过.操作符完成object.prop,但这要求属性名必须是一个有效的变量名。如果属性名包含特殊字符,就必须用''括起来

    1 var xiaohong = {
    2     name: '小红',
    3     'middle-school': 'No.1 Middle School'
    4 };

      --xiaohong的属性名middle-school不是一个有效的变量,就需要用''括起来。访问这个属性也无法使用.操作符,必须用['xxx']来访问

    1 xiaohong['middle-school']; // 'No.1 Middle School'
    2 xiaohong['name']; // '小红'
    3 xiaohong.name; // '小红'

    注意:JavaScript规定,访问不存在的属性不报错,而是返回undefined

    由于JavaScript的对象是动态类型,你可以自由地给一个对象添加或删除属性:

     1 var xiaoming = {
     2     name: '小明'
     3 };
     4 xiaoming.age; // undefined
     5 xiaoming.age = 18; // 新增一个age属性
     6 xiaoming.age; // 18
     7 delete xiaoming.age; // 删除age属性
     8 xiaoming.age; // undefined
     9 delete xiaoming['name']; // 删除name属性
    10 xiaoming.name; // undefined
    11 delete xiaoming.school; // 删除一个不存在的school属性也不会报错

    如果我们要检测xiaoming是否拥有某一属性,可以用in操作符

     1 var xiaoming = {
     2     name: '小明',
     3     birth: 1990,
     4     school: 'No.1 Middle School',
     5     height: 1.70,
     6     weight: 65,
     7     score: null
     8 };
     9 'name' in xiaoming; // true
    10 'grade' in xiaoming; // false

    不过要小心,如果in判断一个属性存在,这个属性不一定是xiaoming的,它可能是xiaoming继承得到的

    要判断一个属性是否是xiaoming自身拥有的,而不是继承得到的,可以用hasOwnProperty()方法

    1 var xiaoming = {
    2     name: '小明'
    3 };
    4 xiaoming.hasOwnProperty('name'); // true
    5 xiaoming.hasOwnProperty('toString'); // false

    5、变量
    变量可以反复赋值,而且可以是不同类型的变量,但是要注意只能用var申明一次

    1 var a = 123; // a的值是整数123
    2 a = 'ABC'; // a变为字符串


    注意:如果一个变量没有通过var申明就被使用,那么该变量就自动被申明为全局变量

    6、字符串

    获取长度:通过length

    获取某个指定位置的字符:通过索引,索引从0开始

    toUpperCase():把一个字符串全部变为大写

    toLowerCase():把一个字符串全部变为小写

    indexOf():会搜索指定字符串出现的位置

    substring():返回指定索引区间的子串

    1 var s = 'Test';
    2 s[0] = 'X';
    3 alert(s); // s仍然为'Test'

    注意:字符串是不可变的,如果对字符串的某个索引赋值,不会有任何错误,但是,也没有任何效果

  • 相关阅读:
    如何使用C++构建一个极坐标系?
    归一化 [a] 到 [b] 区间
    ffmpeg 如何转换 rgb 图片到 yuv420p?如何使用 C 语言实现 rgb24 如何转换 yuv420p ?
    如何写一个通用的网络包?
    jenkins 配置参数为tag
    jmeter函数助手digest使用简介
    RD-T: 3540 Front Impact Bumper Model
    Listary软件的使用
    Adams各种材料的接触力参数
    Spring 使用构造方法注入方式
  • 原文地址:https://www.cnblogs.com/fanyizhan/p/9988284.html
Copyright © 2020-2023  润新知