美文网首页年终福利
WEB前端开发工程师 年终福利(二、前端和服务端)

WEB前端开发工程师 年终福利(二、前端和服务端)

作者: 吴佳浩 | 来源:发表于2019-01-09 12:13 被阅读0次

    Vue、react、 Angular、主流框架和服务器相关问题

    • 1、 ng-app是什么?

            ng-app 指令用于告诉 AngularJS 应用当前这个元素是根元素。
    
            所有 AngularJS 应用都必须要要一个根元素。
    
            HTML 文档中只允许有一个 ng-app 指令,如果有多个 ng-app 指令,则只有第一个会被使用。
    
    • 2、说说MVC和MVVM分别是什么?

            MVC全名是Model View Controller。是Controller模型(model)-视图(view)-控制器(controller)的缩写
    
            MVVM是Model-View-ViewModel的简写
    
    • 3、−g是什么?

        在Node.js中-g表示全局安装模块
    
    • 4、自定义指令的类型(E,A,C,M)?

            元素(E)、属性(A)、类(C)、注释(M)
    
    • 5、$scope和自定义指令里的scope有啥区别?

            $scope 对象在 AngularJS 中充当数据模型的作用,也就是一般 MVC 框架中 Model 得角色.但又不完全与通常意义上的数据模型一样,因为 $scope 并不处理和操作数据,它只是建立了视图和 HTML 之间的桥梁,让视图和Controller 之间可以友好的通讯.
            自定义指令里的scope表示指令的作用域,它有三个可选值:true、false、对象{}
    
    • 6、Ionic中的路由?

            Ionic也是基于Angular的,使用的是ui-router,
    
            ui-router的核心理念是将子视图集合抽象为一个状态机,导航意味着 状态的切换,Ionic之所以没有使用Angular官方的ngRoute,是回ngRoute缺少一些高级的特性,比如视图命名,视图嵌套。
    
    • 7、filter?

            过滤器 对数组中的每一项运行给定函数,返回该函数会返回true 的项组成的数组。
            let even=array.filter(item=>{//获取数组中偶数
    
            return (item%2===0)
    
            })
    
    
    • 8、ng-bind?

            ng-bind 指令告诉 AngularJS 使用给定的变量或表达式的值来替换 HTML 元素的内容。
            如果给定的变量或表达式修改了,指定替换的 HTML 元素也会修改。
             
    
    • 9、说一说link?

            link中可以拿到scope和controller,可以与scope进行数据绑定,与其他指令进行通信。
    
    • 10、为什么angular不推荐使用dom操作?

            Angular倡导以测试驱动开发,在的service或者controller中出现了DOM操作,那么也就意味着的测试是无法通过的
            使用Angular的其中一个好处是啥,那就是双向数据绑定,这样就能专注于处理业务逻辑,无需关系一堆堆的DOM操作。如果在Angular的代码中还到处充斥着各种DOM操作,那为什么不直接使用jquery去开发呢
    
    • 11、看过Angular的源码吗,它是怎么实现双向数据绑定的?

            angular对常用的dom事件,xhr事件等做了封装, 在里面触发进入angular的digest流程。
            在digest流程里面, 会从rootscope开始遍历, 检查所有的watcher
    
    • 12、讲讲promise和aSync await

        Promise:
            Promise是ES6 也就是js 2015中提出的新的Api 本质是为了解决JavaScript的回调地狱问题,相当于一个异步处理容器
            promise.then(res=>{})接收promise容器内部resolve状态返回的值作为参数在.then回调中接收,
            promise.catch(err=>{})接收的是promise容器内部reject状态返回的值作为参数在.catch回调当中接收
        async awiat:
            ES8 标准引入了 async 函数,使得异步操作变得更加方便。
            async 函数是什么?一句话,它就是 Generator 函数的语法糖。
            简而言之申明一个async 函数 内部用await将函数内部的异步操作顺序执行 ,
            不需要像generator一样生成一个iterator迭代器 在.next()的去手动的次序执行,
            而现async与语法糖已经帮你顺序执行完成了上述的操作。async对异步的封装就更加简洁明了
    
    • 13、ui-router 和 ng-router区别?

            AngularJS的ng-route模块为控制器和视图提供了[Deep-Linking]URL
            ui-router的核心理念是将子视图集合抽象为一个状态机,导航意味着 状态的切换。
    
    • 14、什么是指令?

            指令是指示计算机执行某种操作的命令,它由一串二进制数码组成。一条指令通常由两个部分组成:操作码+地址码。
    
    • 15、service服务三种方式是什么?

            angularjs 中可通过三种($provider,$factory,$service)方式自定义服务
    
    • 16、gulp任务都是怎么定义,怎么执行的?

            通过 gulp.task方法定义任务,在项目中新建gulpfile.js文件,书写代码,如:
    
            var gulp = require(‘gulp’)
    
            gulp.tasks(
    
            ‘script’ // 任务名
    
            ,function(){
    
              // 在这里写任务需要执行的代码
    
            });
    

    在命令输入gulp 任务,可以执行所在目录gulpfile.js文件中的任务。

    • 17、Bootstrap中最多可以分多少列?lg、md、sm、xs这几个屏幕宽度的界限是多少?

            12列
    
            .col-xs- 超小屏幕手机 (<768px)
            .col-sm- 小屏幕平板 (≥768px)
            .col-md- 中等屏幕桌面显示器 (≥992px)
            .col-lg- 大屏幕大桌面显示器 (≥1200px)
    
    • 18、angular中方法apply和digest区别?

            当数据出现没有经过angular但是发生改变的情况下,需要调用apply。Apply的范围比较广,只执行一次,但是digest针对某一元素执行多次。
    
    • 20、ng-show/hide和ng-if的区别是什么?

             Show/hide是显示隐藏,if是是否存在某一部分
    
    • 21、react虚拟DOM运行机制是什么?

            在React中,render执行的结果得到的并不是真正的DOM节点,结果仅仅是轻量级的JavaScript对象,我们称之为virtual DOM。虚拟dom
    
    • 22、react中prop和state的区别?

            需要理解的是,props是一个父组件传递给子组件的数据流,这个数据流可以一直传递到子孙组件。而state代表的是一个组件内部自身的状态(可以是父组件、子孙组件)。
    
    • 23、redux的原理?

            Redux 把一个应用程序中,所有应用模块之间需要共享访问的数据,都应该放在 State 对象中。这个应用模块可能是指 React Components,也可能是你自己访问 AJAX API 的代理模块,具体是什么并没有一定的限制。State 以 “树形” 的方式保存应用程序的不同部分的数据。这些数据可能来自于网络调用、本地数据库查询、甚至包括当前某个 UI 组件的临时执行状态(只要是需要被不同模块访问)
    
    • 24、node常用模块?

            http、fs、path、url、Buffer、process
    
    • 25、了解npm,spm,nodejs吗,请简要描述?

            NPM便于JavaScript开发者共享和重用代码,它可以很容易地更新你的代码;再分享。是全球最大的开源库生态系统。
    
            SPM是淘宝社区电商业务(xTao)为外部合作伙伴(外站)提供的一套跟踪引导成交效果数据的解决方案。
    
            Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。
            它使我们能够在本地运行javascript
    
    • 26.请列举在内网的两台服务器中拷贝文件的方法?用Shell脚本解答数据库?

            将你要拷贝上传的文件使用tar -cf config.tar config/ 将congfig文件夹整个打包成tar 文件
            使用 scp config.tar wujiahao@47.98.21.341:/demo/
            #解读这句话  将打包好的config.tar 文件上传到用户为wujiahao公网ip为47.98.21.341下的demo文件夹下
            #主要就是scp命令的使用
    
    • 27.请简述你了解的服务器配置例如Apache、NGINX

        Apache 设置虚拟主机 
        设置网站域名
        设置站点根目录
        设置根站点默认访问文件
    
    • 28、请描述你所熟悉的Web服务器框架(如Django)作为一个成熟的Web框架,需要提供哪些重要的功能模块?

            提供了网站开发的常用模块:处理用户请求、操作数据库、模板渲染、配置文件管理等
    
    • 29、服务器Node.js和浏览器js的区别是什么?Node.js把js从客户端迁移了到服务端、主要做了哪些工作?为什么说Node.js适合做高并发的互联网应用?

          Node采用一系列“非阻塞”库来支持事件循环的方式。本质上就是为文件系统、数据库之类的资源提供接口。
          Node.js 使用事件驱动,非阻塞I/O 模型而得以轻量和高效,非常适合在分布式设备上运行数据密集型的实时应用。
    
    • 30 、说说react和Vue常用的生命周期

         //react
         componentWillMount(初始化)
         componentDidUpdate(更新)
        componentWillUnmount(卸载)
        //Vue
        created(创建)
        mouted(挂载)
        updated(更新)
    
    • 31、简述Vue和React前端配置,解决跨域的方法

    //Vue
    1、修改config/index.js里proxyTable
        proxyTable: {
          // 前端的请求代理转发    start
          '/': {
            target: 'http://127.0.0.1:9090',//设置你调用的接口域名和端口号 别忘了加http
            changeOrigin: true,
            pathRewrite: {
              '^/': '/'//这里理解成用‘/’代替target里面的地址,后面组件中我们掉接口时直接用api代替 比如我要调用'http://40.00.100.100:3002/user/add',直接写‘/user/add’即可
            }
          }
          // 前端的请求代理转发    end
        },
    2、修改config/dev.env.js
    
    module.exports = merge(prodEnv, {
        NODE_ENV: '"development"',
        API: '"/"' // 加入这一句
    })
    //React 在package.json当中加入一条proxy 将请求通过webpack转发到你想要请求的地址
      "proxy": "http://localhost:9090"
    
    • 32、vuex 和 react-redux分别实现多状态合并输出怎么做?

    //Vue
    1、更具功能创建多个store   
    2、将多个store导入到一个modules当中
    3、在用到相对应的值的时候这么取,比如取demo1state中的d1
    import { mapState } from 'vuex'
     computed:mapState({
          d1: state =>state.demo1.d1
      })
    如果要用这个值d1 和data当中的状态一样取即可
    //react
    //合并所有的reducer 并且返回
    import {combineReducers } from 'redux'
    import {user} from './redux/user.redux'//执行用户登陆的操作
    import {chatuser} from './redux/chatuser.redux'//执行用户获取列表的操作
    export default combineReducers({user,chatuser})
    
    

    相关文章

      网友评论

        本文标题:WEB前端开发工程师 年终福利(二、前端和服务端)

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