183:基础数据类型详解
1、复习
1、全局变量:
依托于window环境下的的变量。
在window大环境下(即最外层)申明的变量a,即为全局变量。
2、window:
window下的变量为全局变量。
window可省略。
3、作用域:
作用在一定的区域的变量,在该区域之外就不起作用。
函数就是一个最基本的作用域。
任何函数都是一个作用域。
4、变量:
就是一个变化的量。
(1)变量命名规则:
不能以数字开头;
不能以数字命名;
在js中有意义的单词態作为变量名;(关键字,var、for、if等;)
(特殊的:top等,可以当变量,不会报错,但是不会得到你赋予它的值)
(2)常用命名法
驼峰命名法:首字母大写,可以多个单词组合。var AiDeMingZi = 500;
_命名法:var ai_de_mingzi = 500;
object对象,取o:var oDiv = document.getElementById('div1');
Arr数组,取a:var aDiv = document.getElementsByTagName('div');
2、数据格式
(1)typeof-- 查看变量数据格式
typeof是js中唯一一个不会报错的方法。
写法2:alert(typeof d);
(2)数据格式
String
Numbe
Boolean
var a = true;
var b = false;
function() – 函数、方法
var time = function(){}
object-- 对象
var a = [];
var b = {};
null
undefined
(3)数据格式介绍及判断
== :对比两个变量的内容是否一致
===:不仅对比内容,还要对比数据格式是否一致
1、String字符串
字符串是一个字面量、
变量用new新建,会成为object对象,虽然字面量一样(都是123),但是数据格式不一样,所以alert(a === g); //false
判断结果为false。
只有字面量是有可能相等的,任何对象都不相等;
即每个对象独一无二,没有两个相等的对象,最多就是字面量一样;
这里是在对比两个对象:
2、Array数组
数组本身就是一个对象。
虽然j和k没有用new,但是js还是会用new Array去解析,所以这里的j的申明等于var j = new Array(1 , 2 , 3);
,所以虽然内容一样但依旧是两个对象;任何对象都不相等。
引用机制:
地址:内存地址:fx02154435
每一个数组都是存在于一个内存地址里面的
解析:
当调用c.push(1);
时,意思是在原数组后面再加1,是对原数组进行一个修改,地址没有变化,所以输出时为1231;
当调用c = [4 , 5 , 6];
时,c从参数变成了一个新的数组,储存地址为002,而a的储存地址为001,你对c赋值就和a没有关系了,所以这里对a没影响,输出为123。
3、数字Number
与string一样,字面量对比一样,但用new定义,本质上还是两个对象,没有两个相等的对象,最多就是字面量一样;
4、布尔值Boolean
true == 1;
false == 0;
在js中,如果要用布尔值参与运算,其中true代表1 , false代表0;
5、function
function也有lenght,就是它的参数值的总和;
形参:形式上的参数 ,这里有3个,a,b,c;
实参:实际的参数,这里实际上只给了a的值,所以实参就一个a,a=1;
(4)关键字
1、this
指当前环境
(1)、当前发生事件的元素/对象(谁发生的事件就是谁)
(2)、指当前的在某个元素/对象的作用域下(发生在谁的作用域下就是指谁)
2、self
指当前页面的根节点