JavaScript基础
javaScript
中小余
对任何热爱的事情 都要全力以赴 包括喜欢自己
展开
-
浏览器模型-window对象
浏览器里面,window对象(注意,w为小写)指当前的浏览器窗口。它也是当前页面的顶层对象,即最高一层的对象,所有其他对象都是它的下属。一个变量如果未声明,那么默认就是顶层对象的属性。name = '小鱼';window.name;// 小鱼window对象的属性window.namewindow.name = 'a'// 只要浏览器窗口不关闭,这个属性是不会消失的。举例来说,访问a.com时,该页面的脚本设置了window.name,接下来在同一个窗口里面载入了b.com,新页面的脚本可以读原创 2021-05-18 06:47:28 · 460 阅读 · 1 评论 -
浏览器模型
1、JavaScript 是浏览器的内置脚本语言。也就是说,浏览器内置了 JavaScript 引擎,并且提供各种接口,让 JavaScript 脚本可以控制浏览器的各种功能。一旦网页内嵌了 JavaScript 脚本,浏览器加载网页,就会去执行脚本,从而达到操作浏览器的目的,实现网页的各种动态效果。<script id="mydata" type="x-custom-data"> console.log('Hello World');</script>/* type可以原创 2021-05-15 04:08:04 · 350 阅读 · 1 评论 -
JavaScript异步操作-Promise对象
Promise 对象是 JavaScript 的异步操作解决方案,为异步操作提供统一接口。它起到代理作用(proxy),充当异步操作与回调函数之间的中介,使得异步操作具备同步操作的接口。Promise可以让异步操作写起来就像在写同步操作的流程,而不必一层层地嵌套回调函数。let p1 = new Promise(f1);p1.then(f2)/* 回调函数f1作为参数 * 返回的p1就是一个Promise实例 * 执行为f1 就会执行f2// Promise 的写法(new Promise原创 2021-05-15 02:58:58 · 115 阅读 · 0 评论 -
JavaScript异步操作 -定时器 setTimeout setInterval
setTimeout()setTimeout函数用来指定某个函数或某段代码,在多少毫秒之后执行。它返回一个整数,表示定时器的编号,以后可以用来取消这个定时器。let timerId = setTimeout(func|code, delay); * 第一个参数func|code是将要推迟执行的函数名或一段代码 * 第二个参数delay是推迟执行的毫秒数,如果省略,则默认为0 * 还可以有更多的参数,但第三个参数开始将作为回调函数的参数 function fun() { co原创 2021-05-13 16:27:55 · 587 阅读 · 0 评论 -
JavaScript异步操作
单线程模型js只能一次执行一个任务(只在一个线程上运行,但js引擎其实有多个线程,只是都在后台配合),其它任务都必须在后面排队等待.优点: 实现起来比较简单 ,执行环境相对单纯缺点: 只要有一个任务耗时很长,后面的任务都必须排队等着,会拖延整个程序的执行事件循环机制: CPU不管IO操作,挂起处于等待中的任务,去执行排在后面的任务; 当IO操作返回了结果 ,再把挂起的任务继续执行下去.同步任务和异步任务同步任务 : 指那些没有被引擎挂起、在主线程上排队执行的任务. 只有前一个任务执行完原创 2021-05-04 22:08:11 · 135 阅读 · 0 评论 -
JavaScript面向对象编程 - 严格模式 use strict
'use strict';/** 1.严格模式可以在单个函数体里,也可以用于整个脚本*/- 严格模式下,对只读属性赋值,或者删除不可配置(non-configurable)属性都会报错。 如:设置字符串的length属性,会报错;因为length是只读属性,严格模式下不可写 - 严格模式下,对一个只有取值器(getter)、没有存值器(setter)的属性赋值,会报错 let obj = { get info() { return "hello world"原创 2021-04-28 14:29:50 · 227 阅读 · 0 评论 -
JavaScript面向对象编程 - Object 对象的相关方法
Object.getPrototypeOf()- 返回参数对象的原型。这是获取原型对象的标准方法。 function Fun(){ } let subFun = new Fun(); Object.getPrototypeOf(subFun) == Fun.prototype; // true***************************************************************// 空对象的原型是 Object.protot原创 2021-04-27 12:59:06 · 168 阅读 · 0 评论 -
JavaScript面向对象编程-对象的继承
对象的继承:通过原型对象继承;基于class继承。// 这里只介绍通过原型对象继承原型对象的概述构造函数的缺点function Person(name, age) { // 所有实例对象都会生成name age 属性 和say方法 this.name = name; this.age = age; this.say = function() { console.log("Hello world!"); };}let per1 = new Person("中小余", 18原创 2021-04-20 17:33:39 · 113 阅读 · 0 评论 -
面向对象编程-this关键字
this 它总是返回一个对象- this就是属性或方法“当前”所在的对象 let obj = { name: "中小余", age: 18, gender: "女", say: function() { return "hello " + this.name; // this指的name属性所在的对象 } }; obj.say(); // 'hello 中小余'- this的指向是可变的 .原创 2021-04-15 18:32:03 · 180 阅读 · 0 评论 -
面向对象编程-new命令
什么是对象单个实物的抽象是一个容器,封装了属性和方法,属性是对象的状态,方法是对象的行为。构造函数JS语言的对象体系,基础构造函数(constructor)和原型链(prototype)。构造函数就是专门用来生成实例对象的函数,它就是对象的模板,描述实例对象的基本结构 。为了与普通函数区分,构造函数的首字母通常大写生成对象的时候 必须使用new命令函数体内部使用了this关键字,代表了所要生成的对象实例new命令let Yu = function(val){ this.p原创 2021-04-11 21:02:37 · 576 阅读 · 2 评论 -
JavaScript标准库- JSON对象
JSON: JavaScript Object Notation,是一种用于数据交换的文本格式.复合类型的值只能是数组或对象,不能是函数、正则表达式对象、日期对象。原始类型的值只有四种:字符串、数值(必须以十进制表示)、布尔值和null(不能使用NaN, Infinity, -Infinity和undefined)。字符串必须使用双引号表示,不能使用单引号。对象的键名必须放在双引号里面。数组或对象最后一个成员的后面,不能加逗号。JSON对象的两个静态方法 - JSON.stringify()原创 2021-04-07 22:12:36 · 327 阅读 · 0 评论 -
JavaScript标准库-Date对象
Date对象是 JavaScript 原生的时间库。它以国际标准时间(UTC)1970年1月1日00:00:00作为时间的零点,可以表示的时间范围是前后各1亿天(单位为毫秒)。- 普通函数的用法 Date();// 'Mon Apr 05 2021 15:57:31 GMT+0800 (中国标准时间)' Date(2020,1,2);// 'Mon Apr 05 2021 15:57:31 GMT+0800 (中国标准时间)' // 不管有没有参数,直接调用Date总是返回当前时间- 构造函数原创 2021-04-05 22:25:33 · 549 阅读 · 2 评论 -
JavaScript标准库-Math对象
Math对象不是构造函数,不能生成实例,所有的属性和方法都必须在Math对象上调用。静态属性Math对象的静态属性,提供以下一些数学常数。Math.E:常数e。Math.LN2:2 的自然对数。Math.LN10:10 的自然对数。Math.LOG2E:以 2 为底的e的对数。Math.LOG10E:以 10 为底的e的对数。Math.PI:常数π。Math.SQRT1_2:0.5 的平方根。Math.SQRT2:2 的平方根。静态方法Math对象提供以下一些静态方法。Mat原创 2021-04-05 15:06:23 · 247 阅读 · 0 评论 -
JavaScript标准库- String对象
- string作为构造函数时用来生成字符串对象 let str01 = 'xiaoyu'; let str02 = new String('xiaoyu'); typeof str01; //'string' typeof str02; // 'object' str02.valueOf(); //'xiaoyu' str02[0]; // 'x' 字符串对象是一个类似数组的对象(很像数组,但不是数组),有数值键和length属性,可以像数组一样取值 - stri原创 2021-04-05 11:30:16 · 121 阅读 · 0 评论 -
JavaScript标准库- Number对象
Number对象是数值对应的包装对象,可以作为构造函数使用,也可以作为工具函数使用。 - 作为构造函数时用于生成值为数值的对象 let num = new Number(1); typeof num; // 'object'- 作为工具函数时,它可以将任何类型的值转为数值 Number('a'); //NaN Number(true); //1 Number('123'); //123静态属性- Number对象拥有以下一些静态属性(即直接定义在Number对象上的属性,而原创 2021-04-04 18:18:57 · 157 阅读 · 0 评论 -
JavaScript标准库 - Boolean对象
Boolean对象是JS的三个包装对象之一。作为构造函数,他主要用于生成布尔值的包装对象实例。let b = new Boolean(false)typeof b; // 'object'!!b; // true 所有对象对应的布尔值都是trueb.valueOf(); //false 返回实例对应的原始值Boolean函数的类型转换作用- Boolean对象除了可以作为构造函数,还可以单独使用,将任意值转为布尔值。这时Boolean就是一个单纯的工具方法。 Boolean(un原创 2021-04-04 15:21:38 · 95 阅读 · 0 评论 -
JavaScript标准库-包装对象
三种原始类型的值—— 数值、字符串、布尔值——在一定条件下,也会自动转为对象,也就是原始类型的“包装对象”(wrapper)。所谓“包装对象”,指的是与数值、字符串、布尔值分别相对应的Number、String、Boolean三个原生对象。这三个原生对象可以把原始类型的值变成(包装成)对象。- 可以利用`Number`、`String`、`Boolean`把原始类型的值变成对象 let num = new Number(123); typeof(num) - 包装对象的设计目的,首先原创 2021-04-04 14:24:27 · 109 阅读 · 0 评论 -
JavaScript标准库-Array对象
Array构造函数- 可以用Array构造函数生成新的数组 let arr = new Array(2) let arr = Array(2) // 两种方法都可以,但建议总加上new 与其它构造函数用法保持一致-Array()的参数会导致不一至的行为 new Array();//[] 无参数返回一个空数组 new Array(2); // [empty × 2] 参数是正整数,表示返回的新数组的长度,虽然长度为2,但是键名是空的 let yu = new Ar原创 2021-03-31 23:03:37 · 123 阅读 · 0 评论 -
JavaScript标准库-属性描述对象
JavaScript 提供了一个内部数据结构,用来描述对象的属性,控制它的行为,比如该属性是否可写、可遍历等等。这个内部数据结构称为“属性描述对象”(attributes object)。每个属性都有自己对应的属性描述对象,保存该属性的一些元信息。{ value:123; // value是该属性的属性值,默认为undefined writable:false,// 表示属性值(value)是否可改变(即是否可写),默认为true enumerable:true, //表示该属性原创 2021-03-25 15:56:01 · 116 阅读 · 0 评论 -
JavaScript标准库-Object
Object 对象JavaScript 的所有其他对象都继承自Object对象,即那些对象都是Object的实例。Object对象的原生方法分成两类:Object本身的方法与Object的实例方法。Object本身的方法:就是直接定义在Object对象的方法Object实例方法:就是定义在原型对象Object.prototype上的方法凡是定义在Object.prototype对象上面的属性和方法,将被所有实例对象共享。Object():将任意值转换为对象Object(value)表示原创 2021-03-24 16:55:47 · 105 阅读 · 0 评论 -
JavaScript-数据类型转换、错误处理机制
JavaScript 是一种动态类型语言,变量没有类型限制,可以随时赋予任意值。数据类型的转换强制转换强制转换主要指使用Number()、String()和Boolean()三个函数,手动将各种类型的值,分别转换成数字、字符串或者布尔值。Number()Number函数,可以将任意类型的值转化成数值。- 转换规则 //字符串 Number('324') // 324 Number('324abc') // NaN Number函数将字符串转换为数值,要比parseInt函数严格得多,只原创 2021-03-21 13:40:24 · 672 阅读 · 0 评论 -
JavaScript-运算符
算术运算符+ 、 - 、 * 、 / 、 ** 指数运算符、 %余数运算符、 ++x x++ 自增、 --x x--自减、+x数值运算符、负数值运算符。共10个。- 所有的运算符中除了加法,其它都先将运算子转换成数值 再进行运算加法- 加法存在重载(overload):根据运算子不同有可能是'相加' 也可能是'连接'的现象。 true + true // 2 1 + true // 2 'a' + 'bc' // "abc" 1 + 'a' // "1a" false + 'a'原创 2021-03-18 15:21:02 · 158 阅读 · 0 评论 -
JavaScript-数据类型-数组
JS学习笔记 javascript数据类型 数组原创 2021-03-18 10:49:37 · 236 阅读 · 2 评论 -
JavaScript-数据类型-函数
闭包 函数作用域 函数参数 js学习笔记原创 2021-03-17 21:12:51 · 190 阅读 · 2 评论 -
JavaScript-数据类型-对象
对象对象所有的key都是字符串,所以key加不加引号都无所谓。但如果键名不符合标识名的条件(第一个字符是数字,或者有空格 运算符),也不是数字,key必须加引号。let obj = { 1:true, 1x:'xx' // 报错}// property 属性//属性的值是一个对象,就形成了一个链式引用 var o1 = {};var o2 = { bar: 'hello' };o1.foo = o2;o1.foo.bar // "hello"对象的引用- 如果不同的变量名原创 2021-03-16 16:14:05 · 105 阅读 · 0 评论 -
JavaScript查漏补缺
条件语句switch 语句后面的case可以接表达式;switch与后面的case比较是严格比较的( === )break 和 continuebreak 跳出代码志或循环continue 终止本次循环,回到循环结构头部进入下一轮循环标签通常与break和continue语句配合使用top:for(let i ; i<10; i++){ for(let j ; j<10; j++){ if(i == 1 && j ==原创 2021-03-12 15:02:41 · 102 阅读 · 0 评论