javascript(js)基础学习

2022-05-06 15:41:12 浏览数 (1)

BOM、DOM

浏览器模型和文档模型,js访问和操作浏览器的接口

类型

Undefined、Null、Boolean、Number和String,Object

function构造函数创建Object

类型判断

js判断对象、函数、和全局变量

  • commonjs

typeof module === “object” && module && typeof module.exports === “object”

  • amd

typeof define === “function” && define.amd

  • es5、es6

typeof window === “object” && typeof window.document === “object”

查看js类型,_proto_查看对象类型,typeof不能看到真实的类型

代码语言:javascript复制
==和===的区别,==先做类型转换后比较,===直接比较
this调用源、self指向window全局变量

js库

  • promise.js异步
  • asm.js执行二进制代码

对象

代码语言:javascript复制
// ES5构造函数
let Parent = function (name, age) {
    this.name = name;
    this.age = age;
};
Parent.prototype.sayName = function () {
    console.log(this.name);
};
const child = new Parent('hello', 25);
child.sayName()


//ES6 class类
class Parent {
    constructor(name, age) {
        this.name = name;
        this.age = age;
    }
    sayName() {
        console.log(this.name);
    }
};
const child = new Parent('echo', 25);
child.sayName() //echo

js异步和web worker

js引擎单线程,浏览器是多线程的(ui渲染线程、http请求线程、js引擎线程等)

  • js异步:async、await
  • web worker:浏览器线程,和主线程非共享数据,传递二次赋值

js模块开发

类似layui、vue、react等框架,js添加对commonjs和es6模块导出的支持,参考jquery的方式,成员放在函数中保证了代码的封装性

代码语言:javascript复制
(function ($,fn) {
  if ( typeof module === "object" && typeof module.exports === "object" ) {
    module.exports = fn($)
	} else {
		fn($);
	}
}($,function($){}))

js中使用var的变量和函数都是全局的 函数中的变量对外不可见,相同函数名会覆盖前面的函数,和var作用域相同

判断函数是否存在

typeof fn===“function”?fn():false

0 人点赞