//例1:值类型作为参数function foo(num){//这里的num在进来的时候就是123 num *= 2;//246}var n1 = 123;foo(n1); //传参数时会将n1拷贝一份,即内存中有两个123,将拷贝的123传入到函数中赋值console.log(n1);//123结论1: 值类型在参数传递中,函数内与函数外是两个不同的变量,只是数据值相同而已,修改其中一个,另一个不影响//例2:引用类型作为参数function seeDoctor(per){//进入函数体前,拿到传入的数据,即地址 per.health = '健康';}var p = { name:'jim', health:'感冒'};//有两个内存区域,一个存储数据,一个存储p(即地址)seeDoctor(p);//传递参数时p会被拷贝一份,拷贝的是地址,数据没有被拷贝console.log(p.health);//健康//使用p找内存中的数据//得到的就是'健康'结论2: 引用类型在参数传递中,函数内与函数外是两个不同的变量,但是指向同一个对象,因此使用函数内的变量,去修改对象的数据,函数结束后,修改的结果会保留下来//例3:特例function seeDoctor(per){ per = { name:'tom', health:'健康' };}var p = { name:'tom', health:'感冒'};seeDoctor(p);console.log(p.health);//感冒结论3:引用类型如果直接赋值,就和值类型一样4. 字面量固定的值,让你从“字面上”理解其含义。var age=18; // 数值字面量,18为字面值5. 因为精度丢失问题,所以不判断计算后的两个浮点数是否相等 6. 数值范围由于内存的限制,ECMAScript 并不能保存世界上所有的数值
最小值:Number.MIN_VALUE,这个值为: 5e-324
最大值:Number.MAX_VALUE,这个值为: 1.7976931348623157e+308
无穷大:Infinity
无穷小:-Infinity
7. NaNa) NaN 非数值(Not a Number的简写)
console.log(“abc”/18); //结果是NaN
Undefined和任何数值计算为NaN;
NaN 与任何值都不相等,包括 NaN 本身
b) isNaN() :任何不能被转换为数值的值都会导致这个函数返回 true
(isNaN译为是否符合一个标准,什么标准呢?不是一个数字的标准,如果符合了那么就不是一个数字,不符合就是一个数字)
isNaN(NaN);// true
isNaN(“blue”); // true
isNaN(123); // false
8. 转义符://t:制表符,四个空格/n:换行9. 字符串的不可变性在内存中不会立刻消失,只能二次赋值,原有的字符在一定时间内被垃圾回收器回收。 10. undefined 和 nullnull和undefined有最大的相似性。看看null == undefined的结果(true)也就更加能说明这点。但是null ===undefined的结果(false)。不过相似归相似,还是有区别的,就是和数字运算时,10 + null结果为:10;10 + undefined结果为:NaN。任何数据类型和undefined运算都是NaN;任何值和null运算,null可看做0运算。 11. BoobleanBoolean类型有两个字面量:true和false,区分大小写。(大写不对)虽然Boolean 类型的字面值只有两个,但 ECMAScript 中所有类型的值都有与这两个Boolean 值等价的值true、除0数字、“something”、Object(任何对象)为truefalse、0 、“”、undefined 、null为falseif判断时会把括号内的值强行转换成boolean类型。
新闻热点
疑难解答