JavaScript学习之变量和数据类型

变量

变量相当于容器,值相当于容器内的数据,而变量名就是操作容器内数据的句柄。

  • 变量声明

  声明变量使用var语句。

  可以声明一个或多个变量,也可以为变量赋值。未赋值的变量,初始化为undefined值。

  可以重复声明同一个变量,也可以反复初始化变量的值。

var a;
var b,c,d,e;
var b = 12;
console.log(a);        //undefined
console.log(b);        //12
  • 变量赋值

  使用等号(=)运算符可以给变量进行赋值。

  JS引擎的解析方式:先解析代码,获取所有被声明的变量,然后再一行一行的运行。这样所有声明的变量,都会被提升到代码的头部。这称为变量提升。(ES6 let和const声明的变量不存在变量提升)

  • 变量作用域

  全局作用域:

    变量在整个页面脚本中都是可见的,可以被自由访问。

  局部作用域:

    变量仅能在声明的函数内部可见,函数外是不允许访问的。

全局变量在全局作用域范围内都是可见的,因此具有污染性,应该避免使用全局变量。减少使用全局变量的方法有两种:

1、在脚本中创建一个全局变量,作为当前应用的唯一接口,然后通过对象直接量的形式包含所有应用程序的变量。把应用程序的所有变量都追加在该唯一名字空间下,降低与其他应用程序冲突的概率。

var MyApp = {};
MyApp.name = {
    "id": "应用程序的id"
};
MyApp.work = {
    num: 123,
    sub: {
        name: "sub_id"
    },
    doing: function() {
        //执行代码
    }
};

2、使用函数体封装应用程序。

(function() {
    var MyApp = {};
    MyApp.name = {
        "id": "应用程序的id"
    };
    MyApp.work = {
        num: 123,
        sub: {
            name: "sub_id"
        },
        doing: function() {
            //执行代码
        }
    };
})

数据类型

  • 基本数据类型

JS定义了6种基本数据类型

  • 类型检测

1、使用 typeof 运算符可以检测上述6种基本数据类型。以字符串的形式返回,把null归为object类型;把function(){}归为Function类型。

2、使用 constructor 检测。返回当前对象的构造器(类型函数)。如Number.String,Boolean,Object,Array,Function,className。null和undefined没有constructor 属性,不能直接读取。

类型转换

JS能够根据运算环境自动转换值的类型。

  • 转换为字符串

常用方法:

1、使用加号运算符,当值与空字符串相加时,就会把值转换为字符串。

2、使用toString()方法。

  • 转换为数字模式字符串

默认情况下,无论数值采用什么模式表示,使用toString()方法返回的都是十进制的数字字符串。

toString()方法也会根据参数把数字转换为对应进制的值之后再输出为字符串。

var a = 10;
console.log(a.toString());        //10
console.log(a.toString(2));        //1010
console.log(a.toString(8));        //12
console.log(a.toString(16));    //a
  • 转换为小数格式字符串

使用toString()方法把数值转换为字符串时,无法保留小数位,提供3种方法:

1、toFixed():能把数值转换为字符串,并显示小数点后的指定位数。省略的部分可进行四舍五入。

2、toExponential():把数字转换为科学计数法形式的字符串。

3、toPrecision():与toExponential类型,但可以指定有效数字的位数,而不是小数位数。

var b = 10.11256
console.log(b.toFixed(3));        //10.113
console.log(b.toExponential(2));    //1.01e+1
console.log(b.toPrecision(3));        //10.1
  • 转换为数字

把值转换为数字的方法有以下三种:

1、parseInt():可以把值转换为整数。

2、parseFloat():可以把值转换为浮点数。参数必须是十进制形式的字符串

3、使用乘号运算符。

console.log(parseInt("123abc"));        //123
console.log(parseInt("2.12"));            //2
console.log(parseInt(".212"));            //NaN
console.log(parseInt(010));                //8
console.log(parseInt("0x10"));            //16    

//把十六进制字符串"123abc"转换为十进制整数
console.log(parseInt("123abc",16));        //1194684
//把8进制字符串"10"转换为十进制整数
console.log(parseInt("10",8));            //8
//把2进制字符串"10"转换为十进制整数
console.log(parseInt("101",2));            //5
  • 转换为布尔值

把值转换为布尔值的常用方法有两种:

1、使用双重逻辑非。

2、使用Boolean函数。

  • 转换为对象

使用new命令调用String、Number、Boolean类型函数,可以把字符串、数字、和布尔值三类简单值包装为对应类型的对象。

  • 强制类型转换

支持使用以下的函数强制类型转换

1、Boolean(value)

2、Number(value)

3、String(value)

posted @ 2021-08-23 14:47  rissa  阅读(62)  评论(0)    收藏  举报

记录学习笔记,会有很多是参考重复,如有侵权,联系删除