当前位置: 首页 > 编程日记 > 正文

前端部分面试题整理,欢迎补充

  • 1.ng中如何配置路由,$scope和$rootscope的原理
 ng中如何配置路由?1)使用内置路由模块ng-routevar app = angular.module('ngRouteExample', ['ngRoute']).controller('MainController', function($scope) {}).config(function($routeProvider, $locationProvider) {$routeProvider.when('/users', {templateUrl: 'user-list.html',controller: 'UserListCtrl'}).when('/users/:username', {templateUrl: 'user.html',controller: 'UserCtrl'});// configure html5$locationProvider.html5Mode(true);});2)第三方路由模块ui-route$stateProvider.state('contacts', {url: '/contacts',template: 'contacts.html',controller: 'ContactCtrl'}).state('contacts.detail', {url: "/contacts/:contactId",templateUrl: 'contacts.detail.html',controller: function ($stateParams) {// If we got here from a url of /contacts/42$stateParams.contactId === "42";}});scope是angularJS中的作用域(其实就是存储数据的地方),很类似javascript的原型链。搜索的时候,优先找自己的scope,如果没有找到就沿着作用域链向上搜索,直至到达根作用域rootScope。$rootScope是由angularJS加载模块的时候自动创建的,每个模块只会有1个rootScope。rootScope创建好会以服务的形式加入到$injector中。也就是说通过$injector.get("$rootScope");能够获取到某个模块的根作用域。更准确的来说,$rootScope是由angularJS的核心模块ng创建的。复制代码
  • 2.在ng 中的常用指令,服务注入的方式
   ng中常用的指令有:ng-class、ng-if、ng-show、ng-repeat、ng-style、ng-href、ng-src  还有一系列时间绑定的指令ng-click等等...1.内联式注入(最基本的方式)//最基本的依赖注入方式  var MyModule = angular.module("MyModule",[]);  MyModule.controller('MyCtrl',['$scope',  function($scope){             //可以修改参数,如$scope1,但下面必须同时改  $scope.gameName = "海哥帅!"  }  ]);  2.推断型注入//推断型注入方式:函数参数的名称必须要和被注入的对象相同  var MyModule = angular.module("MyModule",[]);  var MyCtrl = function($scope){  $scope.gameName = "海哥帅!";  }  MyModule.controller('MyCtrl',MyCtrl);  3.声明式注入//声明式注入  var MyModule = angular.module("MyModule",[]);  var MyCtrl = function(thisISMyName){//参数名称可以随意变化  thisISMyName.gameName = "weddy!";  }  MyCtrl.$inject = ['$scope'];//加载模块  MyModule.controller('MyCtrl',MyCtrl);复制代码
  • 3.ng中发起请求的内置服务是什么,原理是怎样的?
  ng中发起请求的内置服务是$http$http服务只是简单的封装了浏览器原生的XMLHttpRequest对象。,接收一个参数,这个参数是一个对象,包含了用来生成HTTP请求的配置内容,这个函数返回一个promise对象,具有success和error方法。var promise = $http({method:"post",          // 可以是get,post,put, delete,head,jsonp;常使用的是get,posturl:"./data.json",      //请求路径params:{'name':'lisa'},  //传递参数,字符串map或对象,转化成?name=lisa形式跟在请求路径后面data:blob,         //通常在发送post请求时使用,发送二进制数据,用blob对象。}).success(function(data){//响应成功操作}).error(function(data){//响应失败(响应以错误状态返回)操作})可以使用then()函数来处理$http服务的回调,then()函数接受两个可选的函数作为参数,表示success或error状态时的处理then()函数接收的resp(响应对象)包含5个属性: 1. data(字符串或对象):响应体2. status:相应http的状态码,如2003. headers(函数):头信息的getter函数,可以接受一个参数,用来获取对应名字的值4. config(对象):生成原始请求的完整设置对象5. statusText:相应的http状态文本,如"ok"复制代码

有关更多angular面试题请参考

  • 4.用CSS 实现两个div 交叉层叠的方式有哪几种?
 绝对定位absolute,浮动定位float,固定定位fixed,也可以使用3d转换属性transform;复制代码
  • 5.向一个标签插入内容的方式
常用的两种方法:innerHTML()方法appendChild()方法复制代码
  • 6.如何在一个数组后压入一个数
  arr[length]=数字arr.push(数字)复制代码
  • 7.Ajax 如何实现多线程请求数据,请求返回的是什么类型的数据
  由于js是单线程 所以ajax不能实现多线程请求数据如果想使用多线程,可以使用webworker请求返回的数据格式有xml或者json格式或者Text/HTML格式复制代码
  • 8.如何处理页面缓存问题?
方法1:GET请求URL后加随机数,让服务器认为是不同的请求,
如:"http://www.example.com/index.jsp?class=articele&page=5&t"+newDate().getTime();
方法2:在ajax发送请求前加上xmlHttpRequest.setRequestHeader("If-modified-since","0");
方法3:在ajax发送请求前加上xmlHttpRequest.setRequestHeader("Cache-Control","no-cache");
方法4:若为jquery ajax, 设置ajax属性cache:false;(注意:cache属性对post没有用,对get才有用)
方法5:在服务器端响应请求时加上response.setHeader("Cache-Control","no-cache,must-revalidate");
方法6:使用POST代替GET,浏览器不会对POST做缓存复制代码
  • 9.jquery如何消除不同模块之间的$的影响
 $是JQuery的别名,所以使用$的地方都可以使用JQuery来替换那么如何解决如题目所说的冲突呢?
1.其实jquery已经考虑到了这个问题,使用JQuery.noConflict()  该方法的作用就是让JQuery放弃对$的所有权
2.第二种方法就是自定义JQuery的别名var $j = JQuery.noConflict(); 
在jquery中使用$j;
3.也可以使用语句块,在语句块中仍然使用jquery.js中定义的$(function($) { //你的js代码 })(jQuery);只总结这么多了,如果还有其他的欢迎补充了...复制代码

转载于:https://juejin.im/post/59c131966fb9a00a562e7e69

相关文章:

JS栈结构的简单封装

栈:是一种遵循后进先出(Last In First Out / LIFO) 原则的一种有序集合。 新添加或者要删除的元素都会保存在栈的同一端,我们把它叫做栈顶,另外一端叫做栈底。 在栈中所有的新元素都接近栈顶,而所有的旧元素都接近栈底。 在我们的…

记录CSS3 target伪类简介

CSS3 target伪类是众多实用的CSS3特性中的一个。它用来匹配文档(页面)的URI中某个标志符的目标元素。具体来说,URI中的标志符通常会包含一个”#”字符,然后后面带有一个标志符名称,比如#respond,target就是用来匹配ID为respond的元…

LeetCode实战:合并两个有序数组

题目英文 Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array. Note: The number of elements initialized in nums1 and nums2 are m and n respectively.You may assume that nums1 has enough space (size that is greater o…

Java云托管服务的开支削减策略

\摘要\随着项目不断扩大,你需要将其迁移到更大的虚拟机上。但如果新虚拟机环境超出了你的需求则会产生额外开支。\相比虚拟机,容器具有更小的粒度,并且无需重启运行中的实例即可垂直扩展。\单体应用和历史遗留应用无需更改配置,即…

SpringBoot培训教程--史前文明之Spring简介

一. Spring之起源 1.你知道J2EE吗? 要说到Spring的历史起源,首先咱们要说说J2EE这个玩意儿。 J2EE在1999年和2000年的时候开始得到广泛实现,在J2EE中提出了”事务管理“等核心中间层标准化的概念,但是在实践中出现了各种问题,尤其…

利用外部命令Oralce数据库导入导出

1--数据库导出(exp) 首先进入命令行 导出数据库 在命令行中输入如下命令: exp c2j/c2jc2j filec:/table.dmp tablesjbitaku,jbitakum grantsy 然后按回车键 说明: c2j/c2jc2j 分别表示用户名,密码和服务名 file:输出文件的位置和文…

LeetCode实战:子集

题目英文 Given a set of distinct integers, nums, return all possible subsets (the power set). Note: The solution set must not contain duplicate subsets. Example: Input: nums [1,2,3] Output: [[3],[1],[2],[1,2,3],[1,3],[2,3],[1,2],[] ]题目中文 给定一组…

linux的挂载命令

在linux中所有的存储设备都必须挂载后才能使用,相当于windows的分配盘符 挂载命令 mount #查看系统中已经挂载好的设备 mount -a #根据/etc/fstab中的内容,自动挂载 /etc/fstab是系统开机的自动挂载文件 系统挂载时要自动检车测这个文件,如果…

软件测试需要学习什么技术

软件测试在近几年被很多企业都重视起来,互联网时代,APP种类越来越多,软件测试这一行业的发展前景是非常大的,那么想要学习软件测试需要学习什么技术呢?来看看下面的详细介绍。 软件测试需要学习什么技术? 每个软件在上线之前都离…

silverlight4.0 写文件不能设置默认文件名

Silverlight4.0 不提供SaveFileDialog的SafeFileName的写属性 Weve not exposed the "DefaultFileName" property on SaveFileDialog due to time constraints.Moe Elshall | Silverlight Development TeamMicrosoft Corporation等待5.0解决问题。转载于:https://www…

我是如何组织“算法刻意练习活动”的?

背景 在上个学期末,我们组织了一次团队的招新活动 – 如何加入 LSGO 软件技术团队?。 我们让预加入团队的同学在假期中完成以下两个任务之一: 学习 C# 语言: https://www.bilibili.com/video/av2357992/?p1学习 Python 语言&a…

[Ubuntu] ubuntu10.04系统维护之Wine的安装

在介绍安装wine之前,我想是有必要先介绍一下Wine的。当然,如果是Liunx的高手,我想是没必要看的,但是对于笔者这样的菜鸟级人物还是需要看一下的。 Wine是一款Liunx下的模拟器软件,但是Wine又不仅仅是一个模拟器软件&am…

Python培训教程:Python内置数据结构之双向队列

经常听说Python就是一门执行速度低的语言,可能是你的程序中使用了复杂的算法与数据结构,才会导致程序执行速率低的。在Python的标准库中提供了常见的数据结构工开发者使用,不仅执行速率比较快,还可以简化开发者的编程工作。下面我…

华为hybrid-vlan

华为hybrid-vlan、三层交换、DHCP拓扑&#xff1a;需求&#xff1a;1.路由器终结vlan2.交换机间以hybrid方式透传vlan3.PC以DHCP获取IP思路&#xff1a;1.PC的网关在路由器上2.配置hybrid-vlan3.配置DHCP步骤&#xff1a;路由器AR1&#xff1a;<Huawei>sy[Huawei]vlan 10…

android 按住拖动gallery防止马上加载数据导致gallery卡的方法

gallery菜单滑动有一个不好的效果就是每次经过中间的菜单都默认是被选中状态&#xff0c;同时会加载数据 以至于切换不流畅&#xff0c;有一种卡卡的感觉&#xff01;&#xff01;其实用线程来处理这个问题&#xff0c;一定的时间后如果选择的index值不变&#xff0c;说明已经稳…

LeetCode实战:买卖股票的最佳时机

背景 为什么你要加入一个技术团队&#xff1f;如何加入 LSGO 软件技术团队&#xff1f;我是如何组织“算法刻意练习活动”的&#xff1f;为什么要求团队的学生们写技术Blog 题目英文 Say you have an array for which the ith element is the price of a given stock on day …

HTML5培训教程:HTML5基础介绍

HTML5发展史&#xff1a; HTML5草案的前身名为 Web Applications 1.0&#xff0c;于2004年被WHATWG提出&#xff0c;于2007年被W3C接纳&#xff0c;并成立了新的 HTML 工作团队。 • HTML 5 的第一份正式草案已于2008年1月22日公布。HTML5 仍处于完善之中。然而&#xff0c;大部…

LeetCode实战:买卖股票的最佳时机 II

背景 为什么你要加入一个技术团队&#xff1f;如何加入 LSGO 软件技术团队&#xff1f;我是如何组织“算法刻意练习活动”的&#xff1f;为什么要求团队的学生们写技术Blog 题目英文 Say you have an array for which the ith element is the price of a given stock on day …

csdn模拟登陆

版权声明&#xff1a;原创作品&#xff0c;允许转载&#xff0c;转载时请务必以超链接形式标明文章原始出版、作者信息和本声明。否则将追究法律责任。http://blog.csdn.net/mayongzhan - 马永占,myz,mayongzhan 首先声明本模拟不稳定,有时会出现登陆不进去.模拟的原理请参考bl…

Xcode 创建.a和framework静态库(转)

最近因为项目中的聊天SDK&#xff0c;需要封装成静态库&#xff0c;所以实践了一下创建静态库的步骤&#xff0c;做下记录。 库介绍 库从本质上来说是一种可执行代码的二进制格式&#xff0c;可以被载入内存中执行。库分静态库和动态库两种。iOS中的静态库有 .a 和 .framework两…

软件测试培训需要学习什么

软件测试在近几年引起了很多人的关注&#xff0c;不少人都想要学习软件测试&#xff0c;零基础的学员都会选择报软件测试培训机构学习&#xff0c;那么软件测试需要学习什么呢?来看看下面的详细介绍。 软件测试培训需要学习什么? 软件测试需要学测试环境(网络环境&#xff0c…

IL,Emit之OpCodes说明(备查)

名称说明Add将两个值相加并将结果推送到计算堆栈上。Add_Ovf将两个整数相加&#xff0c;执行溢出检查&#xff0c;并且将结果推送到计算堆栈上。Add_Ovf_Un将两个无符号整数值相加&#xff0c;执行溢出检查&#xff0c;并且将结果推送到计算堆栈上。And计算两个值的按位“与”并…

LeetCode实战:只出现一次的数字

背景 为什么你要加入一个技术团队&#xff1f;如何加入 LSGO 软件技术团队&#xff1f;我是如何组织“算法刻意练习活动”的&#xff1f;为什么要求团队的学生们写技术Blog 题目英文 Given a non-empty array of integers, every element appears twice except for one. Find…

610D - Vika and Segments(线段树+扫描线+离散化)

扫描线&#xff1a;http://www.cnblogs.com/scau20110726/archive/2013/04/12/3016765.html 看图&#xff0c;图中的数字是横坐标离散后对应的下标&#xff0c;计算时左端点不变&#xff0c;右端点加1&#xff0c;所以总的更新的区间是l到r-1。 也可以理解为1代表的是&#xff…

UI设计比较流行的插画类型和运用

在当代平面设计中&#xff0c;插画是颇为经常使用的展现性元素&#xff0c;是视觉转达的紧张对象。插画在设计作品中&#xff0c;每每用来指导、开导和出现消息&#xff0c;更有针对性地、视觉化地同用户举行交换。真正高效的插画必然是有针对性的&#xff0c;易于辨认的&#…

poj 2362 Square

#include <iostream> //参照poj 1011 sticks#include <algorithm>using namespace std;int sticks[20],visited[20];int flag,total;int t,seg;int cmp(const void* a,const void* b){return (*(const int*)b)-(*(const int *)a);}void solve(int k,int…

Java BIO、NIO、AIO

同步与异步 同步与异步的概念, 关注的是 消息通信机制 同步是指发出一个请求, 在没有得到结果之前该请求就不返回结果, 请求返回时, 也就得到结果了.比如洗衣服, 把衣服放在洗衣机里, 没有洗好之前我们一直看着, 直到洗好了才拿出来晾晒. 异步是指发出一个请求后, 立刻得到了回…

LeetCode实战:数组中的第K个最大元素

背景 为什么你要加入一个技术团队&#xff1f;如何加入 LSGO 软件技术团队&#xff1f;我是如何组织“算法刻意练习活动”的&#xff1f;为什么要求团队的学生们写技术Blog 题目英文 Find the kth largest element in an unsorted array. Note that it is the kth largest el…

热修复测试过程注意事项

软件测试行是近几年比较火热的技术岗位&#xff0c;想要学习软件测试的同学有很多&#xff0c;今天小编给你分析一下关于热修复测试过程注意事项的相关内容&#xff0c;如果你在一次测试中脱颖而出那将来的你一定很精彩! 基于tinker实际测试过程中遇到的问题&#xff0c;小编简…

LeetCode实战:存在重复元素

背景 为什么你要加入一个技术团队&#xff1f;如何加入 LSGO 软件技术团队&#xff1f;我是如何组织“算法刻意练习活动”的&#xff1f;为什么要求团队的学生们写技术Blog 题目英文 Given an array of integers, find if the array contains any duplicates. Your function…