美文网首页
(17.05.18)赋值表达式、逗号表达式、预解析、this的方

(17.05.18)赋值表达式、逗号表达式、预解析、this的方

作者: 张不困_ | 来源:发表于2017-11-19 15:02 被阅读0次

赋值表达式
    document.onclick = document.onmouseover = fn;
    var a = b = c = d = 5;        不推荐

逗号表达式

    var a = 5,
        b = 3,
        c = 2;

听逗号最后一个

    if(0,1){                    if(1,0)
        true    √                   true
    }else{                      else
        false                       false   √
    }

    alert('a','b');             'a'
    alert(('a','b'));           'b'

    num = 12,5;                 12
        逗号的优先级很低

    numu = (12,5);              5

预解析

    会把所有声明提到顶部

    预解析不会突破script标签
    预解析不会突破作用域
    函数也有预解析
    变量赋值形式的函数,按照变量的预解析走

script执行步骤:
    读取一个script标签->预解析->执行->读取下一个script标签


this的问题
    方法属于谁this就是谁

    function show(){
        alert(this);            window
    }
    show();
    show属于window的

    document.onclick = function(){
        alert(this);            document
    };
    function属于document的

    document.onclick = function(){
        function show(){
            alert(this);
        }
        show();
    };

    show谁也不属于,应该弹undefined。但是弹window。


属于js的bug

    作者造成的。
    作者也知道有这些bug。

严格模式
'use strict';
     必须放在第一行,上面什么都不能有

解决了哪些问题?
    1. this的问题
    2. 不允许不加var声明变量
    3. 不允许连等声明变量
    4. 干掉with

    是好东西。
    不兼容IE低版本。

    自己写得js文件都要加严格模式

    作者?
        布兰登·艾克
    作者为什么弄出这个bug?


ajax交互
    ajax不能跨域

    跨域:
        www.a.com
        www.b.com

为什么需要跨域?
    1. 第三方验证
    2. 多个项目


jsonp     json with padding
        跨域交互

        必须有jsonp的接口

百度下拉的接口
    https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=a&cb=show

        wd      word            关键词
        cb      callback        回调函数的名字

    $.ajax({
        url:'',
        data:{
            wd:''
        },
        dataType:'jsonp',
        jsonp:'回调参数名'
    });

玩jsonp:

    1.先有接口
    2.测试接口
        直接写在地址栏
    3.
        $.ajax({
            url:'百度的接口地址',
            dataType:'jsonp',
            data:{
                wd:'关键词'
            },
            jsonp:'cb'
        }).then((res)=>{
            成功
            res.s
        },(err)=>{
            失败
        });

搜索

    https://www.baidu.com/s?wd=关键词
    window.open('url','_self');

Jsonp核心原理
    利用script跨域加载脚本,执行回调函数
Ajax核心原理
    使用XMLHttpRequest对象

  1. ajax如何跨域?
        jsonp
  2. jsonp为什么不是ajax?
        因为没用XMLHttpRequest

360搜索
https://sug.so.360.cn/suggest?callback=show&word=a

google
https://www.google.com.hk/complete/search?client=hp&hl=zh-CN&gs_rn=64&gs_ri=hp&cp=1&gs_id=uc&q=a&xhr=t

bing
http://cn.bing.com/AS/Suggestions?pt=page.home&mkt=zh-cn&qry=a&cp=1&cvid=A2306BB1EE354A81BB7DDBDF96BB8395

sogou
https://www.sogou.com/suggnew/ajajjson?key=aa&type=web
    window.sogou.sug(["aa",["aaa","aape","aabc的四字词语大全","a爱奇艺会员","aabb","aabc","aa655","阿安卡盟","aaa云","aabc形式的词语"],["0;0;0;0","1;0;0;0","2;0;0;0","3;0;0;0","4;0;0;0","5;0;0;0","6;0;0;0","7;0;0;0","8;0;0;0","9;0;0;0"],["","","","","","","","","",""],["0"],"","suglabId_1"],-1);

数据网站
https://bird.ioliu.cn/


移动端
    轮播图插件
    swiper
    官网:http://www.swiper.com.cn/
    只需要布局就行

    滚屏插件
    iscroll
    官网:http://cubiq.org/iscroll-5

swiper 无缝轮播图


题:
function show(b){
alert(a);
var a = b;
alert(a);
}
var a = function (num){
return show(num);
}
alert(a(12));
undefined 12 unefined

相关文章

  • (17.05.18)赋值表达式、逗号表达式、预解析、this的方

    赋值表达式    document.onclick = document.onmouseover = fn;   ...

  • python的顺序程序设计

    赋值同步赋值:变量1,变量2,....变量n=表达式1,表达式2,.....表达式n同步赋值首先计算右边n个表达式...

  • C语言学习 - 逗号运算符

    在C语言中,逗号运算符的功能是把多个表达式连接起来组成一个表达式,称为逗号表达式。逗号表达式在使用gcc编译时,带...

  • 7. JavaScript表达式与运算符

    7.1 表达式 7.1.1 赋值表达式 在 JavaScript 中,赋值表达式的一般语法形式为:“变量 赋值运算...

  • 每日一题(2)

    来康康这道题吖 涉及到知识点:this指向,逗号表达式,赋值表达式,运算符优先级 答案: 打印结果:20 20 1...

  • 那些年C语言走过的坑

    一、逗号运算符 在C语言中,多个表达式可以用逗号分开,其中用逗号分开的表达式的值分别结算,但整个表达式的值是最后一...

  • Java基础教程(8)——表达式、语句和块

    一.表达式 表达式由变量和运算符组成。下面是一个简单的赋值表达式: a = 0; 表达式都具有运算结果,因为赋值表...

  • C语言005 第五节课-逗号运算符2019-06-28

    前言:逗号运算符,逗号运算符是单目运算符,其功能是把两个表达式组成一个表达式,分别求表达式的值,最后一个表达式的值...

  • JavaScript-循环遍历

    for循环 //每个表达式用分号;分割,千万不要写成逗号,for(初始化表达式1;条件表达式2;自增表达式3){/...

  • C扩展:运算符与变量

    1. 逗号表达式 逗号用来连接两个表达式,并以右边的表达式的值为结果。 优先级:所有运算符中最低的 结合律:只左向...

网友评论

      本文标题:(17.05.18)赋值表达式、逗号表达式、预解析、this的方

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