一些JS超级基础的知识梳理(一)

前端发展史

第一阶段:C / S (client server) -> B / S (browser server)网页制作
技术栈:PhotoShop、HTML、CSS
第二阶段:从静态到动态,从后端到前端 前端开发工程师
前后端分离:
后端:完成数据的分析和业务逻辑的编写(包含 API 接口编写)
前端:网页制作、JS 交互效果、数据的交互和绑定
技术栈:JavaScript 、 Ajax(跨域技术)、jQuery …
第三阶段:从前端到全端(从 PC 端到移动端)
技术栈:H5、CSS3、响应式布局开发,Zepto、Hybrid(混合 app 开发)微信小程序…
第四阶段:从全端到全栈
全栈开发:前后端都可以开发(严格意义讲,一种语言完成前段后开发)
技术栈:NODE(基于 js 编程语言开发服务器端程序)、Express / Koa…

常用的一些浏览器及其内核

webkit :谷歌 chrome、Safari、opera、国产浏览器、手机浏览器
Gecko:火狐 Firefox
Presto:Opera
Trident:IE、IE EDGE(开始采用双内核:其中包含 chrome 迷你)

JS语言的一些知识和规范

ECMAScript(ES3/6-9).:JS 的语法规范(变量、数据类型、操作语句等等)
DOM(document object model):文档对象模型,提供一些 JS 的属性和方法,用来操作页面中的 DOM 元素
BOM(browser object model):浏览器对象模型,提供一些 JS 的属性和方法,用来操作浏览器的

关于命名规范

  1. 大小写严格标准
  2. 使用字母数字下划线、$、数字不能作为开头(基于dollar符开头,一般代表使用JQ或者其他使用的类库获取内容,基于下划线开头的一般代表的是全局或者公共的变量)
  3. 使用驼峰命名法:首字母小写,其余每一个有意义单词的首字母都要大写(命名尽可能语义化,使用英文单词)
  4. 不能使用关键字和保留字

关于创建变量的几种方式
•var / let 创建变量(ES3 )
• const 创建常量(ES6)
• function 创建函数(创建一个变量func,指向这个函数)
• class 创建类
• import/require 模块导入(基于ES6Module或者Common.js规范导入模块)
关键词和保留字
•关键字:break、continue、 if、 else、for、 var / let / const / function / class / import / export、 instanceof / typeof、 this、 return、 switch、 case、 do、 while、 delete、 new、…
•保留字:boolean、 float、 int、 double、 long、 char、
debugger、…
js中的常用数据类型
基本数据类型
• 数字 number :常规数字和 NaN
• 字符串 string:所有用单引号、双引号、反引号(撇)包起来的都是字符串
• 布尔 boolean:true / false
• 空对象指针 null
• 未定义 undefined
•唯一值 Symbol
引用数据类型
• 对象数据类型 object
{} 普通对象
[] 数组对象
/(\d|([1-9]\d+))(.\d+)?$/ 正则对象
Math 数学函数对象
日期对象

• 函数数据类型 function

关于数据类型的一些知识补充

Number数字类型
Number() ParseInt() ParseFloat()
正负数,零,小数,NAN,Infinity(无穷大)
NaN 和任何值(包括自己)都不相等
isNaN 检测一个值是否为非有效数字,如果不是有效数字返回 TRUE,反之是有效数字返回 FALSE
String字符串类型
String() [val].toString() 字符串拼接
Boolean 布尔值类型
Boolean() ![val] !![val]
只有 0、NaN、’’、null、undefined 五个值转换为FALSE,其余都转换为TRUE
null / undefined
null 和 undefined 都代表的是没有
• null:意料之中(一般都是开始不知道值,我们手动先设置为 null,后期再给予赋值操作)
• undefined:意料之外(不是我能决定的)
object对象数据类型
特点:用键值对描述一个对象的特征
键值对中的增删改查
获取:obj.xx obj[‘xx’] (如果没有属性名,则属性值为undefined)
删除:obj.xx=null(假) delete obj.xx(真)
增加/修改:直接写,同名会覆盖,也就是替换或修改
对象属性名不能是引用数据类型,因为会自动转为字符串,结果会是’object Object’
数据类型的检测
tyoeof[val] (null为object(因为二进制中null前三位为000,浏览器自动识别为对象))
[]instanceof[] 检测某一个实例是否属于这个类
[].constructor === [] 检测实例域类的关系,从而检测数据类型
Object.prototype.toString.call([]) 最标准的一种方式

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值