- 博客(16)
- 收藏
- 关注
原创 关于基础排序算法(JavaScript)
冒泡排序 思想:对数组相邻元素两两比较,如果前一个大于后一个,交换位置,这样数组最后一个数就是最大的数。然后对除最后一个数(也就是排好序的数)重复上述操作,最后数组有序。 数学化 数组长n,就排n-1趟 每i趟比n-i次 优化:当一次循环没有发生冒泡,就停止循环 function bubbleSort(arr) { let len = arr.length; // 外循环为排序趟数,排len-1趟 for (let i = len - 1; i > 0; i--) {
2021-09-30 08:43:58
167
原创 关于JavaScript的绑定 this 的方法
this的动态切换,固然为 JavaScript 创造了巨大的灵活性,但也使得编程变得困难和模糊。有时,需要把this固定下来,避免出现意想不到的情况。JavaScript 提供了call、apply、bind这三个方法,来切换/固定this的指向。 Function.prototype.call() 函数实例的call方法,可以指定函数内部this的指向(即函数执行时所在的作用域),然后在所指定的作用域中,调用该函数。 var obj = {}; var f = function () { retu
2021-09-30 07:36:11
205
原创 关于JavaScript实例对象和new
典型的面向对象编程语言(比如 C++ 和 Java),都有“类”(class)这个概念。所谓“类”就是对象的模板,对象就是“类”的实例。但是,JavaScript 语言的对象体系,不是基于“类”的,而是基于构造函数(constructor)和原型链(prototype)。 构造函数名字的第一个字母通常大写。 构造函数的特点有两个。 函数体内部使用了this关键字,代表了所要生成的对象实例。 生成对象的时候,必须使用new命令。 new命令执行时,构造函数内部的this,就代表了新生成的实例对象, 使用new
2021-09-26 19:49:39
241
原创 关于谷歌浏览器开发者工具
这是英文原版的 下面是中文的 打开开发者工具以后,顶端有多个面板。 Elements:查看网页的 HTML 源码和 CSS 代码。 Console:用来运行 JavaScript 命令。 Sources:查看网页加载的脚本源码。 Network:查看网页的 HTTP 通信情况。 Performance:查看网页的性能情况,比如 CPU 和内存消耗。 下面两个没找见 Resources:查看网页加载的各种资源文件(比如代码文件、字体文件 CSS 文件等),以及在硬盘上创建的各种内容(比如本地缓存、Cook.
2021-09-26 16:41:13
534
原创 关于JavaScript布尔值
下列运算符会返回布尔值: 前置逻辑运算符: ! (Not) 相等运算符:=,!,==,!= 比较运算符:>,>=,<,<= 除了下面六个值被转为false,其他值都视为true。 undefined null false 0 NaN ""或’’(空字符串) !!! 注意,空数组([])和空对象({})对应的布尔值,都是true。 if ([]) { console.log('true'); } // true if ({}) { console.log('true'); }
2021-09-26 16:28:19
86
原创 关于JavaScript的null和undefined
null表示空值,即该处的值现在为空。调用函数时,某个参数未设置任何值,这时就可以传入null,表示该参数为空。比如,某个函数接受引擎抛出的错误作为参数,如果运行过程中未出错,那么这个参数就会传入null,表示未发生错误。 undefined表示“未定义”,下面是返回undefined的典型场景。 // 变量声明了,但没有赋值 var i; i // undefined // 调用函数时,应该提供的参数没有提供,该参数等于 undefined function f(x) { return x; } f
2021-09-26 16:25:32
642
原创 关于JavaScript数据类型
JavaScript 语言的每一个值,都属于某一种数据类型。JavaScript 的数据类型,共有六种。(ES6 又新增了第七种 Symbol 类型的值) 数值(number):整数和小数(比如1和3.14)。 字符串(string):文本(比如Hello World)。 布尔值(boolean):表示真伪的两个特殊值,即true(真)和false(假)。 undefined:表示“未定义”或不存在,即由于目前没有定义,所以此处暂时没有任何值。 null:表示空值,即此处的值为空。 对象(object):各
2021-09-26 16:18:19
147
原创 关于JavaScript变量提升(ES6 let const大法好)
JavaScript 引擎的工作方式是,先解析代码,获取所有被声明的变量,然后再一行一行地运行。这造成的结果,就是所有的变量的声明语句,都会被提升到代码的头部,这就叫做变量提升(hoisting)。 console.log(b); var b = 1; 上面的代码因为hosting(变量提升),真正运行时是 var b; console.log(b); b = 1; 把代码放到控制台去执行 结果都是undefined 也就是变量已经声明了,但是没有赋值还。 null和undefined的区别: // 变
2021-09-26 15:50:46
110
原创 关于JavaScript
JavaScript 是一种轻量级的脚本语言。所谓“脚本语言”(script language),指的是它不具备开发操作系统的能力,而是只用来编写控制其他大型应用程序(比如浏览器)的“脚本”。 JavaScript 本身不提供任何与 I/O(输入/输出)相关的 API,都要靠宿主环境(host)提供,所以 JavaScript 只合适嵌入更大型的应用程序环境,去调用宿主环境提供的底层 API。 目前,已经嵌入 JavaScript 的宿主环境有多种,最常见的环境就是浏览器,另外还有服务器环境,也就是 Nod
2021-09-26 15:39:42
124
原创 关于URL(Uniform Resource Locator 统一资源定位器)
URL 是一个网页地址。 URL可以由字母组成,如"runoob.com",或互联网协议(IP)地址: 192.68.20.50。大多数人进入网站使用网站域名来访问,因为 名字比数字更容易记住。 Web浏览器通过URL从Web服务器请求页面。 scheme://host.domain:port/path/filename 放大点好看 scheme - 协议。最常见的类型是 http https host - 主机(http 的默认主机是 www) domain - 域名,比如 4399.com :po
2021-09-26 15:32:59
1067
原创 关于网络模型(OSI七层模型和TCP/IP参考模型)的笔记
左 OSI参考模型是国际标准化组织(OSI)提出的网络体系结构模型。 自下而上依次为物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。 以传输层为界, 上三层统称资源子网,相当于计算机系统,完成数据处理等功能。 下三层统称通信子网,是为了联网而附加的通信设备,完成数据传输功能。 传输层承上启下。 中 TCP/IP模型是 由于得到广泛应用而成为事实的国际标准 的模型 其应用层对应OSI模型的资源子网 网络接口层对应。。。的物理层和数据链路层 网际层对应。。。的网络层 后 为TCP/IP模型各层的主.
2021-09-26 15:16:10
174
原创 1005 Spell It Right (20 分)
1005 Spell It Right (20 分) Given a non-negative integer N, your task is to compute the sum of all the digits of N, and output every digit of the sum in English. Input Specification: Each input file contains one test case. Each case occupies one line which
2021-08-13 16:18:34
151
1
原创 1001 A+B Format (20 分)
1001 A+B Format (20 分) Calculate a+b and output the sum in standard format – that is, the digits must be separated into groups of three by commas (unless there are less than four digits). Input Specification: Each input file contains one test case. Each ca
2021-08-13 16:07:22
182
2
原创 1016 部分A+B (15 分)
1016 部分A+B (15 分) 正整数 A 的“D A (为 1 位整数)部分”定义为由 A 中所有 D A 组成的新整数 P A 。例如:给定 A=3862767,D A =6,则 A 的“6 部分”P A 是 66,因为 A 中有 2 个 6。 现给定 A、D A 、B、D B ,请编写程序计算 P A +P B 。 输入格式: 输入在一行中依次给出 A、D A 、B、D B ,中间以空格分隔,其中 0<A,B<10 9 。 输出格式: 在一行
2021-08-11 21:33:59
157
1
原创 1011 A+B 和 C (15 分)
1011 A+B 和 C (15 分) 给定区间 [−2 31 ,2 31 ] 内的 3 个整数 A、B 和 C,请判断 A+B 是否大于 C。 输入格式: 输入第 1 行给出正整数 T (≤10),是测试用例的个数。随后给出 T 组测试用例,每组占一行,顺序给出 A、B 和 C。整数间以空格分隔。 输出格式: 对每组测试用例,在一行中输出 Case #X: true 如果 A+B>C,否则输出 Case #X: false,其中 X 是测试用例的编号(从 1 开始)。 输入样例: 4 1 2 3 2
2021-08-11 21:27:47
161
1
原创 1001 害死人不偿命的(3n+1)猜想 (15 分)
1001 害死人不偿命的(3n+1)猜想 (15 分) 卡拉兹(Callatz)猜想: 对任何一个正整数 n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把 (3n+1) 砍掉一半。这样一直反复砍下去,最后一定在某一步得到 n=1。卡拉兹在 1950 年的世界数学家大会上公布了这个猜想,传说当时耶鲁大学师生齐动员,拼命想证明这个貌似很傻很天真的命题,结果闹得学生们无心学业,一心只证 (3n+1),以至于有人说这是一个阴谋,卡拉兹是在蓄意延缓美国数学界教学与科研的进展…… 我们今天的题目不是证明卡拉兹猜
2021-08-11 21:24:10
73
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅