es6学习中遇到的问题+复习题

1.node英文官网为什么可以自己识别电脑系统
    因为系统名放在请求头里 user-agent

2.闭包

        函数内部包裹函数, 指有权访问另一个函数作用域变量形成的函数
        全局变量可以访问函数内部局部变量
        延申了变量的作用范围 也就是改变了作用域 不会马上销毁函数局部变量
        作用域链得不到释放

3.js中有六种数据类型,包括五种基本数据类型(number,string,boolean,undefined,null),和一种复杂数据类型(object)。

isNaN() 函数用于检查其参数是否是非数字值。

isNaN(123)  //false   isNaN("hello")  //true

存在隐式类型转换

console.log(isNaN('123'));false

NaN不等于自身

console.log(NaN==NaN);false
console.log(NaN===NaN);false

console.log(Object.is(NaN,NaN));true

 转型函数String(),适用于任何数据类型(null,undefined 转换后为null和undefined);toString()方法(null,undefined没有toString()方法)。

null类型被看做空对象指针

4.git add * 上传除了.开始的隐藏文件

        git add . 上传包括隐藏文件的所有文件

5.在js中如何判断一个数据类型?

     1. typeof 的结果symbol number string boolean undefined object function

     console.log(typeof Date());//string

     console.log(typeof new Date());//object

     console.log(Date());//string

     console.log(new Date());//浏览器解析为string

    2.instanceof 判断某个变量是否是某个构造函数对应的原型链上的

        例如:arr instanceof Array

    3.isPrototypeOf 判断某个变量是否是某个原型的子孙后代

        例如:Object.prototype.isPrototypeOf(obj)

    4.isArray 判读某个变量是否是数组

        Array.isArray(arr)

6.隐式类型转换

        (1)undefined-》false

var a;
console.log(typeof a);
if(a){
    console.log('真');
}else{
    console.log('假');
}


undefined
假

        2.值为null,0,0.0,NaN,''(空字符串)->false

var a=null;
console.log(typeof a);
if(a){
    console.log('真');
}else{
    console.log('假');
}

object
假

        3.undefined-》NaN

var b=undefined;
console.log(1+b);

NaN

        4.null->0

var b=null;
console.log(1+b);


1

        5.true->1,false->0

        6.undefined->'undefined',true->'true',null->'null',false->'false'

        7.其它对象->如果存在这个对象则转换为toString()方法的值,否则转换为undefined

7.显式转换

       1.转换为boolean值

        Boolean();

        2.特例:Number(undefined);//NaN

                      Number(null);//0

                  对象转数字:

                先找valueOf(){return 对应数据},valueOf()返回对应数据,valueOf()返回是原始值,包装后返回,如果不是原始值,再找自身或原型上的toString(),toString()是原始值,包装后返回,如果不是原始值,报错。

              例:  var test1={

                                valueOf(){

                                        return {};

                                }

                        }

                     console.log(Number(test1));//结果NaN,实质上是调用了toString(),返回了[object Object]

        3.Boolean(0(/+0/-0)/NaN/false/''/undefined/null);//false

        剩下的都是true, Boolean([]/{}/...);//true

        4.String()

        拼接字符串:如''+{}

        +其实也是String()

         实质就是调用的toString()方法

        对象变字符类型:

        和Number()的类似,先看toString(),再看valueOf()

8.toString()

      (1 ) null和undefined没有toString()

         console.log(undefined.toString());报错

         console.log(null.toString());报错

        console.log(123.toString());报错

        console.log((123).toString());返回结果123,()求值,将123包装

        .toString()前的都是包装后的一个实例对象

        实质上是调用了Number.prototype.toString()方法,也就是Number.prototype.toString.call()

        (2)但是Object.prototype.toString()比较特殊

        Object.prototype.toString(各种数据类型的值);返回结果[object Object]

        其它的不行,如Number.prototype.toString()

       (3) console.log(document.toString());返回结果[object HTMLDocument]//要在浏览器环境运行

        console.log(arguments.toString());返回结果[object Arguments]

        实质上就是Object.prototype.toString.call(各种数据类型的值);返回结果[object 各种数据类型]

        如:console.log(Object.prototype.toString.call(123));返回结果[object Number]

console.log(Object.prototype.toString.call(undefined));返回结果[object Undefined]

console.log(Object.prototype.toString.call(null));返回结果[object Null]

        可以封装typeof方法

9.String()

        null和undefined有String()

10.js对象与JSON字符串转换

JSON是javascript对象的字符串表示法,它使用文本表示一个js对象的信息,本质是一个字符串

JSON.strignify()

JSON.parse()

  • 键值对的方式,属性必须加双引号
  • 值不可以是方法函数、undefined以及NAN

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值