0.前端准备

关于面试:
*基层工程师 --基础知识
*高级工程师 --项目经验
*架构师 --解决方案

扎实的基础会让你高效学习新技术!

1.拿到一个面试题,你第一时间看到的是什么?
考点
2.如何看待网上搜出来的永远也看不完的题海?
学好基础以不变应万变
3.如何看待遇到的面试题
题目—知识—题目

题目:

题目考察的知识点为例:
1.js中使用typeof能得到哪些类型

考点:js变量类型
 string、number、boolean、object、function、undefined
引用类型只能区分function

2.何时使用===何时使用==

“===”完成没有类型转换
“==”类型转换
if(obj.a == null){
 //这里相当于obj.a===null || obj.a ===undefined 简写形式
 //这是jquery源码中推荐的写法
}
除此之外,全部用===

3.js中有哪些内置函数--数据封装类对象

--内置函数有什么作用:原型、原型链特别强调内置函数的作用
--不考虑运行环境,js当做一个单纯的语言来讲,内置了一些东西。
--内置对象:Math JSON

Object
Array
Boolean
Number
String
Fouction
Date
RegExp
Error

4.js变量按照存储方式区分为哪些类型,并描述其特点

一、变量类型:
1.值类型---把数分块存在内存中
2.引用类型--好几个变量共用一个内存块,节省内存空间。
二、特点区别:
*1.值类型的值赋值之后不会相互干涉
*2.引用类型赋值是一个变量指针的赋值,并不是真正的值的copy,
它们的值的修改会相互干预的。

//值类型
var a =10;
var b= a;
a =11;
console.log(b);//10

//引用类型
var obj1 = {x:100};
var obj2 = obj1;
obj1.x = 200;
console.log(obj2.x);//200

5.如何理解JSON

1.json只不过是一个js内置对象(和Math一样)
2.json也是一种数据格式。

JSON的API:

json.stringify({a:10,b:20}); //把对象变成字符串

json.parse('{"a":10,"b":20}'); //把字符串变成对象

知识点:

1.变量类型
--值类型 vs 引用类型
值类型:

eg: 
var a = 100;
var b = a;
a=200;  //a的修改不会影响b
console.log(b);//100
每一个变量都能存储个字的值不会相互影响。
从内存中来说**值类型**是把每一个值都存储到变量内存的位置;
值类型例子图示.png

引用类型:b的修改影响了a

eg:
var a = {age:20};
var b=a;
b.age = 21;
console.log(a.age); //21

把a赋值成一个对象,存在另一个地方,a内存的位置是通过指针指向这个对象的地方,把b赋值成a的时候,定义了一个b,b的指针又指向这个对象的位置,a和b同时指向这个对象的位置,a和b同时指向这个对象,当b.age赋值21的时候,a也指向这个对象,所以a的值变了;

引用类型的变量是一个真实的对象的一个指针而已,并不是每次赋值把这个对象真正的值copy一份存储一份。

引用类型:对象,数组,函数

  可以无限制扩展属性(为了让内存可以共用空间,才会出现引用这种方式)

--typeof运算符详解

typeof只能区分值类型的强制类型,引用类型区分不出来(除了function)

值类型:
typeof undefined //undefined
typeof 'abc' //string
typeof 123 //number
type of true //boolean

引用类型:
typeof {} //object
typeof [] //object
typeof null //object
--什么都没有只是一个空的指针而已,定义了一个位置,但是并没有指向任何一个引用类型的一个真实的对象
typeof console.log //function
2.变量计算--强制类型转换(值类型的类型转换计算)

1.字符串拼接

var a = 100 +10; //110
var b = 100 +'10'; // '10010'  
----字符串拼接的时候发生了类型转换;

2.==运算符

100 == '100'; // true
0 == ' '; //true  
--慎用==,特别针对第一二种情况,他会进行类型转换,试图让前后的数相同。
null == undefined; //true
--0 和 ' '和null和undefined 都会转换成false。

这些地方的==全部换成===就不会出现这种情况。

3.if语句

if语句.png

4.逻辑运算符(或与非)

console.log(10&&0); //0 把10转换成true了;
console.log(' ' || 'abc'); //' ' 转换成false
console.log(!window.abc); // true
!undefiend---->true
//判断一个变量会被当做true还是false
var a =100;
console.log(!!a); //true
!a ---->false
!!a ---->true
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容