共有3991页,39908篇文章。

30

Js面试中容易遇到的算法

素数 Q:你将如何验证一个素数? A:一个素数只能被它自己和1整除。所以,我将运行一个while循环并加1。(看代码示例,如果你无法理解,那这不是你的菜。先回去学习JavaScript基础知识然后再回来吧。) 方法1 function isPrime(n){ var divisor = 2; while (n > divisor){ if(n % divisor == 0){ return false; } else divisor++; } return true; } isPrime(137); // = true isPrime(237); // = fa...

阅读该文章
28

javascript面试题大全_Js基础面试题(附答案)

近年来,从事web前端开发的程序员越来越多,都需要使用JavaScript,这篇文章主要整理一些最常见的JavaScript面试题以及答案。 介绍JavaScript的数据类型 值类型(基本类型):字符串(String)、数字(Number)、布尔(Boolean)、对空(Null)、未定义(Undefined)、Symbol(独一无二的值)。 引用数据类型:对象(Object)、数组(Array)、函数(Function)。 注:Symbol 是 ES6 引入了一种新的原始数据类型,表示独一无二的值。 基本数据类型与引用类型在存储上有什么区别? 1.存储位置不同: 基本数据...

阅读该文章
15

javascript原型与原型链

一、prototype 在JavaScript中,每个函数都有一个prototype属性,这个属性指向函数的原型对象。 例如: function Person(age) { this.age = age } Person.prototype.name = 'kavin' var person1 = new Person() var person2 = new Person() console.log(person1.name) //kavin console.log(person2.name) //kavin 上述例子中,函数的prototype指向了一个对象,而这个...

阅读该文章
22

ES6中常用的10个新特性讲解

ECMAScript 6(ES6) 目前基本成为业界标准,它的普及速度比 ES5 要快很多,主要原因是现代浏览器对 ES6 的支持相当迅速,尤其是 Chrome 和 Firefox 浏览器,已经支持 ES6 中绝大多数的特性。下面逐一为大家详解常用的ES6新特性: 1.不一样的变量声明:const和let ES6推荐使用let声明局部变量,相比之前的var(无论声明在何处,都会被视为声明在函数的最顶部) let和var声明的区别: var x = '全局变量'; { let x = '局部变量'; console.log(x); // 局部变量 } console.log(x); ...

阅读该文章
23

JS的发布订阅模式

这里要说明一下什么是发布-订阅模式 发布-订阅模式里面包含了三个模块,发布者,订阅者和处理中心。这里处理中心相当于报刊办事大厅。发布者相当与某个杂志负责人,他来中心这注册一个的杂志,而订阅者相当于用户,我在中心订阅了这分杂志。每当发布者发布了一期杂志,办事大厅就会通知订阅者来拿新杂志。这样在结合下面的图应该很好理解了。 其实就是将发布者和订阅者解耦了,在实际开发中,经常会遇到某个方法内处理很多的逻辑,最简单的就是直接在方法内直接写。这种是高度耦合的面向过程的写法。对于代码维护不友好。而发布-订阅模式就是将两者分离。我触发了某个事件(这里我们将触发该方法定义为事件),我只向调度中心通知,我...

阅读该文章
23

vue前端面试题及答案

面试前端工程师的关于vue框架常见面试题总汇,分享给正在面试的程序员朋友。希望对你有所帮助 对 MVVM 的理解 MVVM分为Model、View、ViewModel三者。 Model:代表数据模型View:代表视图ViewModel:连接视图和模型,实现数据的双向绑定 说说你对SPA单页面的理解,它的优缺点分别是什么? SPA( single page application )仅在 Web 页面初始化时加载相应的 html、JavaScript 和 css。一旦页面加载完成,SPA 不会因为用户的操作而进行页面的重新加载或跳转而页面的变化是利用路由机制实现 html 内容的变换,避...

阅读该文章
15

css面试题及答案

介绍一下标准的css的盒子模型?与低版本IE的盒子模型有什么不同的? 标准盒子模型:宽度=内容的宽度(content)+ border + padding + margin 低版本IE盒子模型:宽度=内容宽度(content+border+padding)+ margin box-sizing属性? 用来控制元素的盒子模型的解析模式,默认为content-box context-box:W3C的标准盒子模型,设置元素的 height/width 属性指的是content部分的高/宽 border-box:IE传统盒子模型。设置元素的height/width属性指的是border + p...

阅读该文章
12

html前端面试题总汇

内元素和块级元素的区别? 行内元素:不会独立出现在一行,单独使用的时候后面不会有换行符的元素。eg:span, strong, img, a 等。这些元素,默认的高宽,总是其内容的高宽。并且,margin和padding值,只有左右有效。 块级元素:独立在一行的元素,他们后面会自动带有换行符。eg:div , p ,form , ul , li , ol , dl 等。它们的出现,往往独自占领一行。在没有设置宽度的情况下,默认宽度总是其父元素的宽度。 行内元素转换成块元素,只要设置其display属性为block即可,display:block; 。块元素转换成行内元素,只要将其displa...

阅读该文章
24

js浅拷贝与深拷贝的区别和实现方式

如何区分深拷贝与浅拷贝,简单点来说,就是假设B复制了A,当修改A时,看B是否会发生变化,如果B也跟着变了,说明这是浅拷贝,拿人手短,如果B没变,那就是深拷贝,自食其力。 1. 如果是基本数据类型,名字和值都会储存在栈内存中 var a = 1; b = a; // 栈内存会开辟一个新的内存空间,此时b和a都是相互独立的 b = 2; console.log(a); // 1 当然,这也算不上深拷贝,因为深拷贝本身只针对较为复杂的object类型数据。 2. 如果是引用数据类型,名字存在栈内存中,值存在堆内存中,但是栈内存会提供一个引用的地址指向堆内存中的值 比如浅拷贝: 当b=a进...

阅读该文章
go语言杂谈

//如何使用golang映射创建JSON数组?

//如何使用golang映射创建JSON数组? package main import ( "encoding/json" "fmt" ) type data struct { Id string Name string } func main(){ id := [5]string{"1","2",&quo...

阅读该文章

推荐图集: