美文网首页
基础概念

基础概念

作者: YangGui | 来源:发表于2017-01-10 15:26 被阅读0次

    参考教程,廖雪峰

    数据类型

    Number

    js不区分整数合浮点数,统一使用Number。
    NaN:表示Not a Number ,无法使用Number计算时用NaN。
    Infinity:表示无限大,当数值超过Number所能表示的最大值时使用。

    比较运算符==和===

    ==,会自动转换数据类型。
    ===,不会转换数据类型,数据类型不一样,返回false。类型一样时,再比较数值。
    NaN与其他所有值都不相等,包括自身。
    判断NaN的方法通过isNaN()函数:isNaN(NaN);

    浮点型的比较

    由于计算机无法准确地表示无限循环的小数,所以比较两个浮点型数据大小,只能比较两个值的差值绝对值是否小于某个阈值。

    1/3 === (1 - 2/3);  //false
    Math.abs(1/3 - (1 - 2/3)) < 0.000001;  //true
    
    null和undefined

    null:表示空,undefined:表示未定义
    两者区分不大,一般只在判断函数参数是否传递的情况下用undefinded。

    数组

    var array = [1, 2, 3, 'js', true, null];
    数组表示按顺序排列的集合,和Java不同,js的数组可以包含任意数据类型。
    还可以使用

    new Array(1, 2,3);
    
    对象

    js对象是一组键-值队的无序集合

    var person = {
             name:'Royal',
             age:25,
             phone:1110120110,
             school:null
    };
    
    strict模式

    js申明变量使用var关键字。若不使用var,则是全局变量。
    全局变量在同一个页面的不同js文件中会相互影响。
    ECMA为此推出了strict模式,该模式下强制使用var声明变量。
    使用strict模式时,在js代码前加上一句:

    'use strict';
    
    多行字符串

    由于多行字符串用 \n
    写起来比较费事,所以最新的ES6标准新增了一种多行字符串的表示方法,用* ... *表示:

    alert(
    `多行
    字符串
    测试`
    );
    
    多个字符串连接

    可以同java一样,使用+连接
    ES6新增了一种模板字符串,使用${ var },它会自动替换字符串中的变量:

    var name = 'Js';
    var age = 20;
    alert(`Hello,${name},age = ${age}`);
    
    数组

    JS的数组可以动态改变数组的大小,java数组的大小在初始化时确定后,不能调整。
    使用数组的length属性,可以获取数组的大小。
    直接给length赋值可以改变数组的大小。

    var array = [1,2,3,4,5];
    array.length; //length为5
    array.length = 10; //length变为10
    

    通过索引可以给数组赋值,如果索引超过数组的大小范围,也会改变数组的大小。

    var array = [1,2,3];
    array[1] = 20;//[1,20,3]
    array[4] = 100; // [1,20,3,undefined,100]
    

    Array和String都可以通过indexOf()来搜索一个指定的元素的位置

    var str = "this is a string";
    str.indexOf('str');//返回10
    str.indexOf('royal');//没有,返回-1
    
    var arr = [10, 20, '30', 'xyz'];
    arr.indexOf(10); // 元素10的索引为0
    arr.indexOf(20); // 元素20的索引为1
    arr.indexOf(30); // 元素30没有找到,返回-1
    arr.indexOf('30'); // 元素'30'的索引为2
    

    slice()就是对应String的substring()版本,它截取Array的部分元素,然后返回一个新的Array.
    均是左闭右开。

    var arr = ['A', 'B', 'C', 'D', 'E', 'F', 'G'];
    arr.slice(0, 3); // 从索引0开始,到索引3结束,但不包括索引3: ['A', 'B', 'C']
    arr.slice(3); // 从索引3开始到结束: ['D', 'E', 'F', 'G']
    

    若不传递参数,则从开始截取到结束,conger复制这个数组。

    var,let和const

    var申明的变量的作用域是函数级的。
    let申明的变量的作用域是块级的。
    const申明的变量的作用域是块级的的常量。

    相关文章

      网友评论

          本文标题:基础概念

          本文链接:https://www.haomeiwen.com/subject/kgrkbttx.html