Bootstrap

关于HarmonyOS的学习

day36

一、可选链和空集合并符

1.?

    // ? 作用:1、三目运算符 2、可选链
    const obj = {
        id: 1,
        // info: {
        //     name: '张',
        //     age: 18
        // }
    }
    console.log(obj.id)
    console.log(obj.info?.name)

2.?? 空集合并符

    amount 是别人传递过来的,如果别人没有传递过来一个具体的值,那么count就会变成undefined
    let amount = 20
    let amount 
    let count = amount ?? 1
    console.log(count)

3.+加号作用

    :1、加法运算  2、字符串拼接  3、数据类型转换
    let num = Number(prompt('请输入一个数字?'))
    let num = +prompt('请输入一个数字?')
    console.log(num)
    console.log(+'10')
    console.log(-'10')
    console.log('10')

二、同源策略

        + 浏览器自身为了安全着想,做的访问的限定的规则,不允许你向别人的服务器发送请求,只能给自己发送
        + 条件
          => 不同源就属于为了同源策略
        + 不同源
          => 协议
          => 域名
          => 端口号
          => 只有其中有一个不同,那么就说明你不同源

规则本身是好的,但是随着发展其实已经不能满足一些需求了,做的限定太多了,例如,百度收购一些小的公司,这些小的公司被收购属于这个大的公司,那么各个公司里面的资源应该可以共享,但是有同源策略的存在,导致不能共享。为了解决问题,有人提出了跨域方案,跨域就是各个服务器间可以相互访问,不受同源策略的限定。

三、jsonp(前端解决跨域的方案,原理是利于了script标记上面的src属性不受同源策略的影响)

<img src="https://img0.baidu.com/it/u=3568352712,1159928261&fm=253&fmt=auto&app=138&f=PNG?w=500&h=753">
<!-- 框架集标记,可以在一个网页里面嵌套另一个网页 -->
<iframe src="https://www.baidu.com" width="700" height="500"></iframe>
<!-- <script src="./js/ajax.js"></script> -->
<script>
    // live server插件服务器地址:http://127.0.0.1:5500/ 
    // 服务器请求地址:http://localhost:2402/jsonp/test
    // pAjax({url: 'http://localhost:2402/jsonp/test'})
    // .then(res=>{
    //     console.log(res)
    // })
<script>
    // live server插件服务器地址:http://127.0.0.1:5500/ 
    // 服务器请求地址:http://localhost:2402/jsonp/test
    // pAjax({url: 'http://localhost:2402/jsonp/test'})
    // .then(res=>{
    //     console.log(res)
    // })
​
    // jsonp前端解决跨域的方案,原理是利于了script标记上面的src属性不受同源策略的影响
    // 注意点:jsonp只能发送get请求
    function fn2(res){
        console.log(res)
    }
</script>
<script src="http://localhost:2402/jsonp/test?callback=fn2"></script>

四、cors

CORS ( Cross-Origin Resource Share),跨域资源共享,有一系列 HTTP 响应头组成,这些请求头决定浏览器是否阻止前端 js 代码跨域获取资源。

浏览器的同源安全策略默认会组织网页“跨域”获取资源。但是如果接口服务器配置了 CORS 相关的 HTTP 响应头,就可以解除浏览器端跨域访问限制。

注意事项:

主要在服务器端设置HTTP响应头;

CORS 使用步骤

安装:

npm install cors

导入:

const cors = require('cors')

使用:

app.use(cors())

五、事件轮询

=> js单线程语言、出现异步代码机制 ​

=> 调用栈,先进后出 ​ => web api,专门用来分配异步任务的 ​

=> 队列,先进先出(微任务、宏任务) ​

=> 执行一次宏任务,要清空微任务,所谓的轮询其实轮流访问宏任务和微任务 ​

=> 遇到同步代码直接会执行调,如果是异步任务会交给web api

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;