js基础
1)对js的理解?
2)请说出以下代码输出的值?
3)把以下代码,改写成依次输出0-9
4)如何区分数组对象,普通对象,函数对象
5)面向对象、面向过程
6)面向对象的三大基本特性
7)XML和JSON的区别?
8)Web Worker 和webSocket?
9)Javascript垃圾回收方法?
10)new操作符具体干了什么呢?
11)js延迟加载的方式有哪些?
12)WEB应用从服务器主动推送Data到客户端有那些方式?
强类型和弱类型
1. 先定义一些基础概念
- Program Errors
– trapped errors导致程序终止执行,如除0,Java中数组越界访问
– untrapped errors。 出错后继续执行,但可能出现任意行为。如C里的缓冲区溢出、Jump到错误地址
- Forbidden Behaviours
语言设计时,可以定义一组forbidden behaviors. 它必须包括所有untrapped errors, 但可能包含trapped errors.
- Well behaved、ill behaved
– well behaved:如果程序执行不可能出现forbidden behaviors, 则为well behaved。
– ill behaved: 否则为ill behaved…
2. 有了上面的概念,再讨论强、弱类型,静态、动态类型强、弱类型
-
强类型strongly typed: 如果一种语言的所有程序都是well behaved——即不可能出现forbidden behaviors,则该语言为strongly typed。
-
弱类型weakly typed: 否则为weakly typed。比如C语言的缓冲区溢出,属于untrapped errors,即属于forbidden behaviors…故C是弱类型前面的人也说了,弱类型语言,类型检查更不严格,如偏向于容忍隐式类型转换。譬如说C语言的int可以变成double。 这样的结果是:容易产生forbidden behaviours,所以是弱类型的
动态类型和静态类型
-
静态类型 statically: 如果在编译时拒绝ill behaved程序,则是statically typed;
-
动态类型dynamiclly: 如果在运行时拒绝ill behaviors, 则是dynamiclly typed
总结
强弱类型没有明确的学术定义、动静态类型描述感觉也不明确。
从体验上描述强类型和弱类型的区别:
-
强类型:不允许隐式类型转换
-
弱类型:容忍隐式类型转换
动静态类型区别:
-
静态类型:编译时候检查类型
-
动态类型:运行时检查类型
TypeScript 是 JavaScript 的超集,扩展了 JavaScript 的语法,因此现有的 JavaScript 代码可与 TypeScript 一起工作无需任何修改,TypeScript 通过类型注解提供编译时的静态类型检查。
TypeScript 可处理已有的 JavaScript 代码,并只对其中的 TypeScript 代码进行编译。
ajax
1)ajax请求的原理/ 手写一个ajax请求?
2)readyState?
3)ajax异步与同步的区别?
4)ajax传递中文用什么方法?
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
FTcpE-1715653422532)]
[外链图片转存中…(img-6zKRvVAr-1715653422533)]