1.如何判断n是String类型
- typeof('h'):string
typeof(true):boolean
typeof(88):number
typeof([]): object
typeof(new Date()):object
typeof(fn () => {}): function
typeof(null):object
typeof(undefined):undefined
typeof(Object/Number/Boolean..):function - 对象:([] instanceof Array) ==> true
((new Date()) instanceof Date) ==> true
(f(n) instanceof Function) ==> true
(f(n) instanceof function) ==> false - 对象:[].constructor === Array
- prototype: 所有字符类型通用
Object.prototype.toString.call(n) === '[Object String]'
2.如何去除字符串中的空格?
'string'.trim()
'str'.replace(/\s/g, ''):去除所有空格
'str'.replace(/^\s|\s*$/g, ''): 去除开头和结尾的空格
3.获取元素节点的方法?(原生)
- document.getElementById('id'):只获取一个,没有返回null
- **.getElementByTagName('div'):返回一个数组
- **.getElementByClassName('class'):返回的是一个类数组
- **.document.documentElement=html元素 **.document.body=body元素
- **.querySelecter('div .class'):获取一个
- **.querySelecterAll('div .class'):获取多个
4.基本的数据类型
- Boolean,Number,String,Undefined,Null,Object
- 引用数据类型:Array,Object,Function
5.强制类型转换
- 转换函数: parseInt(),parsefloat()
- 强制类型转换:Number('444'),Boolean('t'),String(33)
- 弱类型转换:let n = ’45‘ - 0,!'name'
6.XML和JSON的区别
- 扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 XML使用DTD(document type definition)文档类型定义来组织数据;格式统一,跨平台和语言,早已成为业界公认的标准。
XML是标准通用标记语言 (SGML) 的子集,非常适合 Web 传输。XML 提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。 - JSON(JavaScript Object Notation)一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性。可在不同平台之间进行数据交换。JSON采用兼容性很高的、完全独立于语言文本格式,同时也具备类似于C语言的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)体系的行为。这些特性使JSON成为理想的数据交换语言。
JSON基于JavaScript Programming Language , Standard ECMA-262 3rd Edition - December 1999 的一个子集。
7.TCP和UDP的区别
- TCP: TCP在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完后,还会断开连接用来节约系统资源。 缺点: 慢,效率低,占用系统资源高,易被攻击 TCP在传递数据之前,要先建连接,这会消耗时间,而且在数据传递时,确认机制、重传机制、拥塞控制机制等都会消耗大量的时间,而且要在每台设备上维护所有的传输连接,事实上,每个连接都会占用系统的CPU、内存等硬件资源。 而且,因为TCP有确认机制、三次握手机制,这些也导致TCP容易被人利用,实现DOS、DDOS、CC等攻击。
- UDP:比TCP稍安全 UDP没有TCP的握手、确认、窗口、重传、拥塞控制等机制,UDP是一个无状态的传输协议,所以它在传递数据时非常快。没有TCP的这些机制,UDP较TCP被攻击者利用的漏洞就要少一些。但UDP也是无法避免攻击的,比如:UDP Flood攻击…… UDP的缺点: 不可靠,不稳定 因为UDP没有TCP那些可靠的机制,在数据传递时,如果网络质量不好,就会很容易丢包。 基于上面的优缺点,那么: 什么时候应该使用TCP: 当对网络通讯质量有要求的时候,比如:整个数据要准确无误的传递给对方,这往往用于一些要求可靠的应用,比如HTTP、HTTPS、FTP等传输文件的协议,POP、SMTP等邮件传输的协议。 在日常生活中,常见使用TCP协议的应用如下: 浏览器,用的HTTP FlashFXP,用的FTP Outlook,用的POP、SMTP Putty,用的Telnet、SSH QQ文件传输 ………… 什么时候应该使用UDP: 当对网络通讯质量要求不高的时候,要求网络通讯速度能尽量的快,这时就可以使用UDP。 比如,日常生活中,常见使用UDP协议的应用如下: QQ语音 QQ视频 TFTP ……
8.get和post的区别
- get是从服务器上获取数据,post是向服务器传送数据。
- get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER的BODY内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。
- 对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。
- get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。
- get安全性非常低,post安全性较高,如果没有加密,他们安全级别都是一样的,随便一个监听器都可以把所有的数据监听到
9.HTML5有哪些新特性
- 详见中文网
10.如何实现多个标签页之间的通讯
- localStorage,相同域名下,1.html script中在localStorage存储值,2.html script 中监听storage事件能够输出localStorage存储值
- 使用cookie+setInterval
- SharedWorker
11.web应用从服务器主动推送data到客户端有哪些方式
- Javascript数据推送
- Commet:基于HTTP长连接的服务器推送技术
- 基于WebSocket的推送方案
- SSE(Server-Send Event):服务器推送数据新方式
- 如何让样式只在vue组件内有效
- <style scope></style>
- 数组去重函数
let qc = (arr) => {
/*方法一*/
let mar = new Set(arr)
return Array.from(mar)
/*方法二*/
let mar = []
arr.forEach((it) => {
mar.indexOf(it) >= 0 ? '' : mar.push(it)
})
return mar
}
14.this指向问题