作为一名初入前端领域的菜鸟,之前虽然接触过js,最近听到同学吹嘘react,vue ,ES6,模块化,组件化,我整个人是懵逼的,我感到非常蓝瘦,香菇。所以想借用这个平台来激励自己学习web知识,同时也希望分享一些自己的学习心得。把《JavaScript高级程序设计3》浏览了一遍,但是感觉学的不够深入,作为前端三大基础之一,在学习框架,库之前还是打扎实基础吧。因为个人基础和理解,记录中可能存在错误和出入,侵删..
1、对于js简介:
JavaScript 诞生于 1995
ECMA European Computer Manufactures Association
宿主环境:Web浏览器,Node,Adobe Flash
JavaScript:核心ECMAScript 文件对象模型DOM, 浏览器对象模型BOM
文件对象模型(DOM):提供访问和操作页面内容而方法和接口,
浏览器对象模型(BOM):提供与浏览器交互的方法和接口。
宿主环境:Web浏览器,Node,Adobe Flash
2关于在HTML中使用JavaScript
一般在<head>中外联,使用<script>标签,这里记录下script标签的6个属性。
async;charset;defer;language;src;type.这里基本用到的只有src type和defer,src在属性时外联的时候加载的文件地址,type一般编辑器都可以添加,text/javascript
重点记下defer和src。
src:带有src属性的<script>标签元素在<></>中间不能再加入js代码,如果包含了代码,只会加载执行外部脚本文件,嵌入的代码被忽略。另外,src属性可以指向当前html页面所在域之外的某个域的URL,(可以实现跨域加载?跨域的概念还不是很清楚,后面看到jsonp comet再说 ),存在安全性。
defer:<script defer='defer'></script>浏览器立即下载,延迟执行,整个页面解析完成之后再运行,执行顺序不一定由上而下(没用过)。
文档模式:
现在用的<!DOCTYPE html>属于html5的范畴了,混杂模式和标准模式一般用标准模式吧,不知道混杂模式什么用。用混杂模式然后用ie5出现一堆bug?不太清楚..
第三章 基本概念
驼峰式写法、数据类型和操作符。
typeof 操作符:undefined,boolean,string,number,object,function.
null:空对象指针,使用typeof检测返回object number:NaN表示一个非数值,NaN不等以NaN,数值转换:Number()、parseInt()、parseFloat()
重点记录下object:
object的每个实例具有下列属性和方法:Constructor:保存着用于创建当前对象的函数。
hasOwnProperty(propertyName):对象的属性(键,key)是否存在于实例中,而不是原型对象中(每个函数一创建就有一个prototype属性,指向他的原型对象,原型对象中自带的constructor和一些自定义的方法,每个函数的实例都指向这个原型对象,从而有原型对象中的属性和方法。)
isPrototypeOf(object):检测传入的对象是否是另一个函数的原型。
操作符:++a先自增再参与运算/a++先参与运算再自增
位操作符:~ 按位非,求反码 ;| 按位或,真1即可 ^按位异或 <<左移 >>右移
语句:for-in、lable,with语句
for-in:常用的迭代语句 for(var property in obj) obj:要迭代的对象,对象的属性每次赋值给property。
lable: lable:statement e: isFunction: function(){} 相当于对function的标记,(我的理解是可以用来在js文件之间调用函数),用来引用。
函数参数:特别之处在于参数可以传递任意个,传进来的参数保存在函数arguments对象中,与数组类似, arguments.length可以知道传进来几个参数。函数无重载。
总结:前三章是一些很基础的内容,有过一些编程基础基本浏览一下就可以了,从第四章开始开始学习js核心内容,包括原型,作用域等等。