zoukankan      html  css  js  c++  java
  • 简历表面的一些知识点(一)

    1、百度统计是什么?

    百度统计是百度推出的一款免费的专业网站流量分析工具,能够告诉用户访客是如何找到并浏览用户的网站,在网站上做了些什么,有了这些信息,可以帮助用户改善访客在用户的网站上的使用体验,不断提升网站的投资回报率。“世界很复杂,百度更懂你”,百度统计提供了几十种图形化报告,全程跟踪访客的行为路径。同时,百度统计集成百度推广数据,帮助用户及时了解百度推广效果并优化推广方案。

    2、H5和CSS3新增特性?

    CSS3:

    选择器:属性选择器、伪类选择器、伪元素选择器。

    特性:

    1.颜色:新增RGBA,HSLA模式
    2. 文字阴影(text-shadow)
    3.边框: 圆角(border-radius)边框阴影: box-shadow
    4. 盒子模型:box-sizing
    5.背景:background-size 设置背景图片的尺寸background-origin 设置背景图片的原点
    background-clip 设置背景图片的裁切区域,以”,”分隔可以设置多背景,用于自适应布局
    6.渐变:linear-gradient、radial-gradient
    7. 过渡:transition,可实现动画
    8. 自定义动画
    9. 在CSS3中唯一引入的伪元素是 ::selection.
    10. 媒体查询,多栏布局
    11. border-image
    12.2D转换:transform:translate(x,y) rotate(x,y) skew(x,y) scale(x,y)

    13. 3D转换

    伪类:

     p:first-of-type 选择属于其父元素的首个 <p> 元素的每个 <p> 元素。
        p:last-of-type  选择属于其父元素的最后 <p> 元素的每个 <p> 元素。
        p:only-of-type  选择属于其父元素唯一的 <p> 元素的每个 <p> 元素。
        p:only-child    选择属于其父元素的唯一子元素的每个 <p> 元素。
        p:nth-child(2)  选择属于其父元素的第二个子元素的每个 <p> 元素。
        :enabled、:disabled 控制表单控件的禁用状态。

        :checked,单选框或复选框被选中。

    ------------------------------------------------------------------------------------------------------------------------

    H5:

    1. 拖拽释放(Drag and drop) API 
    2. 语义化更好的内容标签(header,nav,footer,aside,article,section)
    3. 音频、视频API(audio,video)
    4. 画布(Canvas) API
    5. 地理(Geolocation) API
    6. 本地离线存储 localStorage 长期存储数据,浏览器关闭后数据不丢失;
    7. sessionStorage 的数据在浏览器关闭后自动删除
    8. 表单控件,calendar、date、time、email、url、search  
    9. 新的技术webworker, websocket, Geolocation支持HTML5标签;
    * IE8/IE7/IE6支持通过document.createElement方法产生的标签,
      可以利用这一特性让这些浏览器支持HTML5新标签,
      浏览器支持新标签后,还需要添加标签默认的样式:
    * 当然最好的方式是直接使用成熟的框架、使用最多的是html5shim框架

    10.本地离线存储 localStorage 长期存储数据,浏览器关闭后数据不丢失;sessionStorage 的数据在浏览器关闭后自动删除。

    3、JavaScript基础(内置对象、BOM、DOM、JSON、AJAX)

    1、数据类型

             基本数据类型:字符串、数字、布尔值、空、未定义;

          引用数据类型:对象、数组、函数;

    2、转义字符

                换行

            回车

            tab

               退格

              f     换页符

    3、浏览器对象BOM

    (1)window对象的属性(窗口高度)

    (2)浏览器存储

      sessionStorage :在浏览器中存储 key/value 对。 在关闭窗口或标签页之后将会删除这些数据。
      localStorage: 在浏览器中存储 key/value 对。没有过期时间。
      cookie: 存储于访问者的计算机中的变量,当同一台计算机通过浏览器请求某个页面时,就会发送这个cookie,识别用户。
    (3)计时器

      setInterval();每隔指定的时间执行
      setTimeout();在指定时间后执行

    (4)开启/关闭窗口

      window.resizeTo(width,height);把窗口的大小调整到指定的宽度和高度。

      window.scrollTo(x,y) ;把内容滚动到指定的坐标。

      window.open([URL], [窗口名称], [参数字符串])打开窗口

    (5)History 对象

      包含用户(在浏览器窗口中)访问过的 URL。可通过window.history进行访问。

      **window.history.back() 加载历史列表中的前一个 URL。
      window.history.forward() 加载历史列表中的下一个 URL。
      window.history.go();加载历史列表中的某个具体页面

    (6)location对象,用于获取或设置窗体的URL。

    (7)Navigator 对象

      包含有关浏览器的信息,通常用于检测浏览器与操作系统的版本。

    4、HTML  DOM操作

    1、DOM方法

      节点访问:    getElementById() 返回带有指定 ID 的元素。
            getElementsByTagName() 返回包含带有指定标签名称的所有元素的节点列表(集合/节点数组)。
            getElementsByClassName() 返回包含带有指定类名的所有元素的节点列表。

      创建节点: createAttribute() 创建属性节点。
            createElement() 创建元素节点。
            createTextNode() 创建文本节点。

      添加/删除/替换元素

             appendChild(新元素) 追加元素,新元素作为父元素的最后一个子元素进行添加

            insertBefore(新节点,指定节点) 在指定的子节点前面插入新的子节点。

            removeChild() 删除子节点,必须清楚该元素的父元素。

            replaceChild(新节点,指定节点) ;:替换子节点。

    2、DOM属性

        innerHTML 用于获取或替换 HTML 元素的内容。

        element.style.样式属性名=新样式内容,改变html样式。

    3、元素对象
        
    nodeName 属性返回节点的名称。
        nodeValue 属性返回节点的值。
        nodeType 属性返回节点的类型。nodeType 是只读的。

        parentNode - 元素的父节点

        childNodes - 元素的子节点

        firstChild: 元素的第一个子元素

        lastChild: 元素的最后一个子元素

    4、DOM事件

      onclick 点击

      onblur:失去焦点
      onfocus 得到焦点
      onkeydown 按下键盘
      onkeyup 松开键盘
      onkepress 按住键盘
      onmousedown 按下鼠标
      onmouseup 松开鼠标
      onmouseover 鼠标悬浮
      ommousemove 移动鼠标
      onmouseout 移开鼠标
      select 选中
      onload :页面加载
      onchange:改变
      onsubmit :表单提交

    5、JSON数据

      用于存储和传输数据的格式,通常用于服务端向页面传递数据;

      JSON.stringify(): JavaScript -> JSON     js值转换成JSON字符串

      JSON.parse() : JSON-> JavaScript  字符串转换成js对象

    6、Ajax更新部分页面

    (1)创建 XMLHttpRequest 对象

        XMLHttpRequest 用于在后台与服务器交换数据。

    (2)向服务端发送请求(异步/同步)

      xmlhttp.open(“GET/POST”,url,异步true/同步false);规定请求类型、服务器上文件的地址以及是否异步处理请求。
      xmlhttp.send(string);将请求发送到服务器。string:仅用于 POST 请求。

    (3)服务器响应

    7、Vue、Vuex、Vue-router分别是什么?有什么作用?

    vue:

    1、核心:实现数据双向绑定和组件化模式。

    2、单向数据流:简单来说就是数据是单向的,数据流动方向可以追踪,流向单一,追踪问题可以更快捷,缺点是写起来不方便。

         双向数据流:数据之间是相通的,将数据变更的操作隐藏在框架内部。优点是表单交互较多的场景下,会简化大量与业务无关的代码。 缺点是无法追踪局部状态的改变,增加了出错时debug的难度。

    3、对MVC、MVVM的理解

    MVC:

     特点 :(1)view传送命令到controller(控制器)

              (2)controller完成业务逻辑后,要求model(模型)改变状态

              (3)model将新的数据发送到view,用户得到反馈。

    MVC所有的通信都是单向的。

    MVVM:

     特点:(1)各部分之间的通信都是双向的

           (2)采用双向绑定:view的变化。自动反应在viewModel(视图模型)。

    4、vue的生命周期

    • beforeCreated() 在实例创建之间执行,数据未加载状态
    • created() 在实例创建、数据加载后,能初始化数据,dom渲染之前执行
    • beforeMount() 虚拟dom已创建完成,在数据渲染前最后一次更改数据
    • mounted() 页面、数据渲染完成,真实dom挂载完成
    • beforeUpadate() 重新渲染之前触发
    • updated() 数据已经更改完成,dom 也重新 render 完成,更改数据会陷入死循环
    • beforeDestory() 和 destoryed() 前者是销毁前执行(实例仍然完全可用),后者则是销毁后执行

    5、组件通信

     

    父传子:将父组件的数据绑定到使用子组件的自定义标签上,子组件在选项中添加一个props属性来接 受数据;
    子传父:在响应该点击事件的函数中使用$emit来触发一个自定义事件,并传递一个参数。

    6、v-if 和 v-show 区别

     

     使用了 v-if 的时候,如果值为 false ,那么页面将不会有这个 html 标签生成。

     v-show 则是不管值为 true 还是 false ,html 元素都会存在,只是 CSS 中的 display 显示或隐藏

    7、$route和$router的区别

      $router 为 VueRouter 实例,想要导航到不同 URL,则使用 $router.push 方法

      $route 为当前 router 跳转对象里面可以获取 name 、 path 、 query 、 params 等

    8、NextTick 是做什么的

       $nextTick 是在下次 DOM 更新循环结束之后执行延迟回调,在修改数据之后使用 $nextTick,则可以在回调中获取更新后的 DOM

    9、Vue 组件 data 为什么必须是函数

       因为js本身的特性带来的,如果 data 是一个对象,那么由于对象本身属于引用类型,当我们修改其中的一个属性时,会影响到所有Vue实例的数据。如果将 data 作为一个函数返回一个对象,那么每一个实例的 data 属性都是独立的,不会相互影响了

    10、计算属性computed 和事件 methods 有什么区别

      computed: 计算属性是基于它们的依赖进行缓存的,只有在它的相关依赖发生改变时才会重新求值

       method :只要发生重新渲染,method 调用总会执行该函数

    11、 对比 jQuery ,Vue 有什么不同

      jQuery 专注视图层,通过操作 DOM 去实现页面的一些逻辑渲染; Vue 专注于数据层,通过数据的双向绑定,最终表现在 DOM 层面,减少了 DOM 操作

      Vue 使用了组件化思想,使得项目子集职责清晰,提高了开发效率,方便重复利用,便于协同开发

    12、Vue 中怎么自定义过滤器

      可以用全局方法 Vue.filter() 注册一个自定义过滤器,它接收两个参数:过滤器 ID 和过滤器函数。过滤器函数以值为参数,返回转换后的值

    13、Vue 中怎么自定义指令

    全局注册
    // 注册一个全局自定义指令 `v-focus`
    Vue.directive('focus', {
      // 当被绑定的元素插入到 DOM 中时……
      inserted: function (el) {
        // 聚焦元素
        el.focus()
      }
    })
    局部注册
    directives: {
      focus: {
        // 指令的定义
        inserted: function (el) {
          el.focus()
        }
      }
    }

    14、对 keep-alive 的了解

      keep-alive 是 Vue 内置的一个组件,可以使被包含的组件保留状态,或避免重新渲染

    15、Vue 中 key 的作用

     

      key 的特殊属性主要用在 Vue 的虚拟 DOM 算法,在新旧 nodes 对比时辨识 VNodes。如果不使用 keyVue 会使用一种最大限度减少动态元素并且尽可能的尝试修复/再利用相同类型元素的算法。使用 key,它会基于 key 的变化重新排列元素顺序,并且会移除 key 不存在的元素。

      有相同父元素的子元素必须有独特的 key。重复的 key 会造成渲染错误

    16、vue 等单页面应用的优缺点

    优点:
    • 良好的交互体验
    • 良好的前后端工作分离模式
    • 减轻服务器压力
    缺点:
    • SEO难度较高
    • 前进、后退管理
    • 初次加载耗时多

    Vuex

    1、vuex是什么

     

      vuex是状态管理器。统一管理和维护各个vue组件的可变状态。
      vuex相当于一个全局变量,用来存储状态和管理数据。

     

    2、五个模型

    (1)state:定义初始化变量,
    (2)mutations:更改 Vuex 的 store 中的状态的唯一方法是提交 mutation,命名规则:动词_名词,全部大写,例如:SET_USER
    (3)actions: Action 提交的是 mutation,而不是直接变更状态。Action 可以包含任意异步操作。命名规则:动词名词,驼峰规则 例如:setUser;
    (4)getters:简单来说就是对state里面的属性进行计算,所有需要访问vuex中的属性,都需使用getter来获取, getter需要单独成一个文件

     

    vue-router

    1vue-router是什么?有哪些组件?

     

      动态路由是单页面的路径管理器,vue页面应用是基于路由和组件的,路由用于设定访问路径 ,并将路径和组件映射起来。也就是说组件之间的切换。

      就是从列表页跳转到详情页,列表页是一些接近或者重复的内容,所以详情页的页面结构是比较接近的,但是数据不一样。因此需要一个组件来渲染不同的页面,数据不一样是受到url的影响。所以url的值不一样,url不一样拿到的数据也不一样,因此渲染出来的页面也不一样。同一个结构渲染出来的页面不一样。因此是路由不一样,所以叫动态路由。这次的路由结构是和上次类似但不完全一样,是一个变化的值,可以调整和改变的值,经常用于列表页调整到详情页。

     

    • <router-link><router-view><keep-alive>

     

    2、active-class 是哪个组件的属性?

      active-class是router-link终端属性,用来做选中样式的切换,当router-link标签被点击时将会应用这个样式

    3、怎么定义vue-router的动态路由?

      动态路由的创建,主要是使用path属性过程中,使用动态路径参数,以冒号开头

    4、vue-router响应路由参数的变化

    • 用watch 检测
    // 监听当前路由发生变化的时候执行
    watch: {
      $route(to, from){
        console.log(to.path)
        // 对路由变化做出响应
      }
    }
    

      

    • 组件内导航钩子函数
    beforeRouteUpdate(to, from, next){
      // to do somethings
    }

    5、vue-router 传参

    Params
    • 只能使用name,不能使用path
    • 参数不会显示在路径上
    • 浏览器强制刷新参数会被清空
      // 传递参数
      this.$router.push({
        name: Home,
        params: {
            number: 1 ,
            code: '999'
        }
      })
      // 接收参数
      const p = this.$route.params
    

    Query:

    • 参数会显示在路径上,刷新不会被清空
    • name 可以使用path路径
      // 传递参数
      this.$router.push({
        name: Home,
        params: {
            number: 1 ,
            code: '999'
        }
      })
      // 接收参数
      const p = this.$route.params

    6、vue-router实现路由懒加载(动态加载路由)

    • 把不同路由对应的组件分割成不同的代码块,然后当路由被访问时才加载对应的组件即为路由的懒加载,可以加快项目的加载速度,提高效率
    const router = new VueRouter({
      routes: [
        {
          path: '/home',
          name: 'Home',
          component:() = import('../views/home')
            }
      ]
    })
    

     

  • 相关阅读:
    好玩的原生js的简单拖拽
    原生js的简单倒计时
    五分钟了解node,cnpm和yarn
    计算水仙花数
    首师大附中科创教育平台 我的刷题记录(1)
    [暑假集训--数位dp]hdu3652 B-number
    [暑假集训--数位dp]hdu2089 不要62
    cf711E ZS and The Birthday Paradox
    Spoj-NETADMIN Smart Network Administrator
    cf449C Jzzhu and Apples
  • 原文地址:https://www.cnblogs.com/yjf713/p/13252585.html
Copyright © 2011-2022 走看看