复习js笔记

2023-10-26

JS

w3cschool官网 - 1000多本编程教程免费学

在日常中遇到的js函数 forms

document.forms['name']

for--in 循环

let x={name:"lai",age:18,city:"nanyang"}
var y=""
for(y in x){
    y=x[y]+"/"
}
y=lai/18/nanyang

do--while循环

let i=1;
do{
    console.log(i)
    i++
}while(i<5)

这里是基本的数据类型可以被typeof识别的类型

typeof可以识别的数据类型有
    string 
    number
    Boolean
    object
    function
    undefined
    以及新增的两个数据类型
    Symbol
    “bigint”:表示一个大整数。
    let a=Symbol();
    let b=4613468613135468461313846135856123n;
    console.log(typeof b)
正则表达式

test()方法用来检测正则表达式

var patt = /e/;
patt.test("The best things in life are free!");
throw

throw 语句允许我们创建自定义错误。

正确的技术术语是:创建或抛出异常(exception)。

如果把 throw 与 try 和 catch 一起使用,那么您能够控制程序流,并生成自定义的错误消息。

<script>
function myFunction(){
    try{
      var x=document.getElementById("demo").value;
      if(x=="")    throw "empty";
      if(isNaN(x)) throw "not a number";
      if(x>10)     throw "too high";
      if(x<5)      throw "too low";
    }catch(err){
      var y=document.getElementById("mess");
      y.innerHTML="Error: " + err + ".";
    }
}
</script>
js调试

可以通过设置断点,使用debugger关键字,以及浏览器自带的的调试工具【谷歌==console】,

我们在与后端进行交互的时候,会出现一些数据问题,我们可以通过postman来进行调试检测。

js保留关键字

就是一些内置的方法名和变量名,我们不可以使用,如function var float number等等

javascript:void(0)

<a href="javascript:void(alert('Warning!!!'))">点我!</a> 
href="#"与href="javascript:void(0)"的区别
# 包含了一个位置信息,默认的锚是#top 也就是网页的上端。
而javascript:void(0), 仅仅表示一个死链接。
href="#"默认指的是网页上端,而###表示无意义的或者就是这个void
​

javascript:void(0) 中最关键的是 void 关键字, void 是 JavaScript 中非常重要的关键字,该操作符指定要计算一个表达式但是不返回值。

a = void ( b = 5, c = 7 );
这里的a因为不返回所以是个undefined
document.write('a = ' + a + ' b = ' + b +' c = ' + c ); 

闭包

var add = (function () {
  var counter = 0;
  return function () {return counter += 1;}
})();
在经历自调用之后,add就等于返回的函数了
add();
add();
add();

DOM

对document来进行操作的,对css样式,对本文属性添加修改。

document.write(Date());

**修改标签内容**
<p id="p1">Hello World!</p>
document.getElementById("p1").text="New text!";
document.getElementById("p1").innerHTML="New text!";

<img id="image" src="smiley.gif">
<script>
document.getElementById("image").src="landscape.jpg";

**修改style样式**
<h1 id="id1">My Heading 1</h1>
<button type="button"
οnclick="document.getElementById('id1').style.color='red'"> 
    
<p id="p1">这是一个文本。</p>
<input type="button" value="隐藏文本" οnclick="document.getElementById('p1').style.visibility='hidden'" />
<input type="button" value="显示文本" οnclick="document.getElementById('p1').style.visibility='visible'" />

inner.Text:

不识别html标签:会把内容全部打印出来 非标准(ie发起) 老版本火狐不可用 去除空格和换行直接显示内容

inner.HTML

识别html标签:会把内容配合标签打印出来 w3c标准推荐 保留标签内的换行以及空格等等

onload 和 onunload 事件
onload 和 onunload 事件会在用户进入或离开页面时被触发。
onload 事件可用于检测访问者的浏览器类型和浏览器版本,并基于这些信息来加载网页的正确版本。
onload 和 onunload 事件可用于处理 cookie。

onchange 事件
onchange 事件常结合对输入字段的验证来使用。

onmouseover 和 onmouseout 事件
onmouseover 和 onmouseout 事件可用于在用户的鼠标移至 HTML 元素上方或移出元素时触发函数。

onmousedown、onmouseup 以及 onclick 事件
onmousedown, onmouseup 以及 onclick 构成了鼠标点击事件的所有部分。首先当点击鼠标按钮时,会触发 onmousedown 事件,当释放鼠标按钮时,会触发 onmouseup 事件,最后,当完成鼠标点击时,会触发 onclick 事件。

onfocus 焦点

事件监听器

addEventListener() 方法允许向同个元素添加多个事件,且不会覆盖已存在的事件:

element.addEventListener("mouseover", myFunction);
element.addEventListener("click", mySecondFunction);
element.addEventListener("mouseout", myThirdFunction);

默认值为 false, 即冒泡传递,当值为 true 时, 事件使用捕获传递。

document.getElementById("myDiv").addEventListener("click", myFunction, true);

removeEventListener() 方法移除由 addEventListener() 方法添加的事件句柄:

*element*.removeEventListener("mousemove", myFunction);

HTML DOM 事件对象_w3cschool 事件总结

创建元素
创建需要的数据
var para=document.createElement("p")
文本节点
var node=document.createTextNode("jdjdjdjd")
para.appendChild(node)
将元素添加到一个已经存在的元素下
var element=document.getElementById("div1")
element.appendChild(para)
删除已有的元素
var parent=document.getElementById("div1");
var child=document.getElementById("p1");
parent.removeChild(child);

BOM

浏览器对象模型 (BOM) 使 JavaScript 有能力与浏览器"对话"。

Window的子对象主要有如下几个:【DOM主要针对与document,BOM主要针对的浏览器window】

  1. JavaScript document 对象

  2. JavaScript frames 对象

  3. JavaScript history 对象

  4. JavaScript location 对象

  5. JavaScript navigator 对象

  6. JavaScript screen 对象


window Screen

document.write("可用宽度: " + screen.availWidth);
Window Location

window.location 对象在编写时可不使用 window 这个前缀。 一些例子:

一些实例:


document.write(location.href);

location.href属性返回当前页面的url;

Window Location Pathname

location.pathname 属性返回 URL 的路径名。

    window.location.assign("https://www.w3cschool.cn") 

location.assign()方法加载新的文档

window.history
history.back()
window.history.forward() 

加载历史列表中的前或后一个url

window.navigator 对象包含有关访问者浏览器的信息。

来自 navigator 对象的信息具有误导性,不应该被用于检测浏览器版本,这是因为:

  • navigator 数据可被浏览器使用者更改

  • 一些浏览器对测试站点会识别错误

  • 浏览器无法报告晚于浏览器发布的新操作系统

浏览器检测

由于 navigator 可误导浏览器检测,使用对象检测可用来嗅探不同的浏览器。

由于不同的浏览器支持不同的对象,您可以使用对象来检测浏览器。例如,由于只有 Opera 支持属性 "window.opera",您可以据此识别出 Opera。

弹窗

alert【警告框】

confirm【确认框】

var r=confirm("按下按钮")
if(r=true){
	x="con"
}else{
	x="cancel"
}

【prompt】提示框

提示框经常用于提示用户在进入页面前输入某个值。

当提示框出现后,用户需要输入某个值,然后点击确认或取消按钮才能继续操纵。

如果用户点击确认,那么返回值为输入的值。如果用户点击取消,那么返回值为 null。

var person=prompt("请输入你的名字","Harry Potter");
if (person!=null && person!=""){
  x="你好 " + person + "!今天感觉如何?";
}
"Harry Potter"为默认值

storage

sessionStorage和localStorage保存的数据,都以“键值对”的形式存在。也就是说,每一项数据都有一个键名和对应的值。所有的数据都是以文本格式保存。

存入数据

使用setItem方法。它接受两个参数,第一个是键名,第二个是保存的数据。

sessionStorage.setItem("key","value");
localStorage.setItem("key","value");
读取数据

使用getItem方法。它只有一个参数,就是键名。

var valueSession = sessionStorage.getItem("key");

var valueLocal = localStorage.getItem("key");
清除数据

removeItem方法用于清除某个键名对应的数据。

sessionStorage.removeItem('key');

localStorage.removeItem('key');

clear方法用于清除所有保存的数据。

sessionStorage.clear();

localStorage.clear(); 
遍历操作

利用length属性和key方法,可以遍历所有的键。

for(var i = 0; i < localStorage.length; i++){
    console.log(localStorage.key(i));
}

除了key属性,event对象的属性还有三个:

  • oldValue:更新前的值。如果该键为新增加,则这个属性为null。

  • newValue:更新后的值。如果该键被删除,则这个属性为null。

  • url:原始触发storage事件的那个网页的网址。

Math

对象提供以下一些数学方法。

  • Math.abs():绝对值

  • Math.ceil():向上取整

  • Math.floor():向下取整

  • Math.max():最大值

  • Math.min():最小值

  • Math.pow():指数运算

  • Math.sqrt():平方根

  • Math.log():自然对数

  • Math.exp():e的指数

  • Math.round():四舍五入

  • Math.random():随机数

  • Math.E:常数e。

  • Math.LN2:2的自然对数。

  • Math.LN10:10的自然对数。

  • Math.LOG2E:以2为底的e的对数。

  • Math.LOG10E:以10为底的e的对数。

  • Math.PI:常数Pi。

  • Math.SQRT1_2:0.5的平方根。

  • Math.SQRT2:2的平方根。

Math对象还提供一系列三角函数方法。

  • Math.sin():返回参数的正弦

  • Math.cos():返回参数的余弦

  • Math.tan():返回参数的正切

  • Math.asin():返回参数的反正弦(弧度值)

  • Math.acos():返回参数的反余弦(弧度值)

  • Math.atan():返回参数的反正切(弧度值)

console对象

  • 调试程序,显示网页代码运行时的错误信息。

  • 提供了一个命令行接口,用来与网页代码互动。

在浏览器中就是F12

console.log方法支持以下占位符,不同格式的数据必须使用对应格式的占位符。

  • %s 字符串

  • %d 数字

  • %i 整数

  • %f 浮点数

  • %o 对象的链接

  • %c CSS格式字符串

var number = 11 * 9;
var color = 'red';

console.log('%d %s balloons', number, color);
// 99 red balloons

console.log(
  '%cThis text is styled!',
  'color: red; background: yellow; font-size: 24px;'
)
console.info()console.debug()

都是console.log方法的别名,用法完全一样。只不过console.info方法会在输出信息的前面,加上一个蓝色图标。

warn方法和error方法

也是在控制台输出信息,它们与log方法的不同之处在于,warn方法输出信息时,在最前面加一个黄色三角,表示警告;error方法输出信息时,在最前面加一个红色的叉,表示出错,同时会显示错误发生的堆栈。其他方面都一样。

table()

对于某些复合类型的数据,console.table方法可以将其转为表格显示。

var languages = [
  { name: "JavaScript", fileExtension: ".js" },
  { name: "TypeScript", fileExtension: ".ts" },
  { name: "CoffeeScript", fileExtension: ".coffee" }
];

console.table(languages);
count()

count方法用于计数,输出它被调用了多少次。

function greet(user) {
  console.count();
   console.count(user);
  return 'hi ' + user;
}

该方法可以接受一个字符串作为参数,作为标签,对执行次数进行分类。

dir(),dirxml()

dir方法用来对一个对象进行检查(inspect),并以易于阅读和打印的格式显示。

该方法对于输出DOM对象非常有用,因为会显示DOM对象的所有属性。

console.dir(document.body)

Node 环境之中,还可以指定以代码高亮的形式输出。

console.dir(obj, {colors: true})

dirxml方法主要用于以目录树的形式,显示DOM节点。

console.dirxml(document.body)

如果参数不是DOM节点,而是普通的JavaScript对象,console.dirxml等同于console.dir

assert()

assert方法接受两个参数,第一个参数是表达式,第二个参数是字符串。只有当第一个参数为false,才会输出第二个参数,否则不会有任何结果。

console.assert(true === false, '判断条件不成立')
// Assertion failed: 判断条件不成立
time(),timeEnd()

这两个方法用于计时,可以算出一个操作所花费的准确时间。

console.time('Array initialize');

var array= new Array(1000000);
for (var i = array.length - 1; i >= 0; i--) {
    array[i] = new Object();
};

console.timeEnd('Array initialize');
// Array initialize: 1914.481ms

time方法表示计时开始,timeEnd方法表示计时结束。它们的参数是计时器的名称。调用timeEnd方法之后,console窗口会显示“计时器名称: 所耗费的时间”。

他们两个需要参数的名字的是相同的。不然就无法操作。

trace(),clear()

console.trace方法显示当前执行的代码在堆栈中的调用路径。

console.clear方法用于清除当前控制台的所有输出,将光标回置到第一行。

group(),groupend(),groupCollapsed()

console.groupconsole.groupend这两个方法用于将显示的信息分组。它只在输出大量信息时有用,分在一组的信息,可以用鼠标折叠/展开。

console.groupCollapsed方法与console.group方法很类似,唯一的区别是该组的内容,在第一次显示时是收起的(collapsed),而不是展开的。

profile(),profileEnd()

console.profile方法用来新建一个性能测试器(profile),它的参数是性能测试器的名字。

console.profileEnd方法用来结束正在运行的性能测试器。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

复习js笔记 的相关文章

随机推荐

  • qwtplot3D安装--终结解决方案

    帮同学做一个地热信息展示的软件 需要用到3D显示的内容 一方面 自己比较懒 懒去看OpenGL相关的内容 虽然以前做过3D开发相关的内容 但是毕竟需要处理的代码太多了 另一方面 也是一直在用QWT在帮他做2D图形显示这块 因此就想着用qwt
  • python3面向对象

    一些术语 类 class 用来描述具有相同的属性和方法的对象的集合 它定义了该集合中每个对象所共有的属性和方法 对象是类的实例 an example 4 learning class nClass i 123456
  • 论文笔记1——SSDA-YOLO: SEMI-SUPERVISED DOMAIN ADAPTIVE YOLO FOR CROSS-DOMAIN OBJECT DETECTION

    SSDA YOLO SEMI SUPERVISED DOMAIN ADAPTIVE YOLO FOR CROSS DOMAIN OBJECT DETECTION 源码地址 https github com hnuzhy SSDA YOLO
  • c#中“?”的几种用法

    c 中 的几种用法 1 可空类型修饰符 如 A B表示如果A为null则返回B 否则返回A 2 三元运算符 如 bool f false return f true 1 0 如果f为true则返回1 否则返回0 3 空合并运算符 如 a b
  • MySQL 管理方法

    MySQL 管理方法 一 Mysql介绍 二 Mysql启动 三 Mysql用户管理 一 Mysql介绍 MySQL是一个开放源码的小型关联式数据库管理系统 开发者为瑞典MySQL AB公司 目前MySQL被广泛地应用在Internet上的
  • Pytest系列-使用自定义标记mark(6)

    简介 pytest 可以支持自定义标记 自定义标记可以把一个 web 项目划分为多个模块 然后指定模块名称执行 Pytest 里面自定义标记 用法 将 pytest mark 标记名称 放到测试函数或者类上面 使用 执行时加上 m 标记名
  • 单片机新手指导1:STM32单片机学习思路

    学习内容 1 写在前面 1 学习态度 单片机 编程学习需要持续的恒心和毅力 涉及的学科跨度大 知识多 前期需长期投入大的精力入门 整个学习过程中最难的是入门这一步 也就是从0到1的过程 后期的学习是从1到10 由于掌握了一定的学习方法 所以
  • 真题详解(有向图)-软件设计(六十二)

    真题详解 极限编程 软件设计 六十一 https blog csdn net ke1ying article details 130435971 CMM指软件成熟度模型 一般1级成熟度最低 5级成熟度最高 采用更高级的CMM模型可以提高软件
  • 2022最简单易懂的IOS App打包发布完整流程

    创建appid标识符 进入apple开发者中心点击Account 点击Certificates Identifiers Profiles 创建AppIDS标识符 点击左侧菜单栏Identifiers 再点击 按钮 选择App IDs 再点击
  • python批量 txt转xml_Python版YOLOV3 Label(.txt)文件转xml文件

    最近在训练自己的yolo模型 训练之后想算mAP 发现网络上基本都是VOC数据集的标签制作方法 我的标签一开始是这样的 类型 x y w h 所以和VOC的不一样 于是就自己做xml文件 附代码 from xml dom minidom i
  • 栈溢出及解决方法

    栈溢出及解决方法 文章目录 栈溢出及解决方法 1 什么是栈溢出 2 栈溢出的解决方法 1 什么是栈溢出 缓冲区溢出是由于C语言系列设有内置检查机制来确保复制到缓冲区的数据不得大于缓冲区的大小 因此当这个数据足够大的时候 将会溢出缓冲区的范围
  • IC SPEC相关数据

    恢复内容开始 静态电流 静态电流是指没有信号输入时的电流 也就是器件本身在不受外部因素影响下的本身消耗电流 纹波电压的害处 1 容易在用设备中产生不期望的谐波 而谐波会产生较多的危害 2 降低了电源的效率 3 较强的纹波会造成 浪涌电压或电
  • c++中string类与字符串数组

    strlen及用 给c 字符串数组赋值 strlen 很笨 它会在遇到 0之前一直找下去 所以在cstr2中没有 0的时候 它会一直找下去 而那些地方还没有被初始化过 所以就是乱的 而且strlen计算出的字符串数组长度是不包含 0的那部分
  • elasticsearch中mapping中的可设置的属性

    mappings 在index 库 下创建时使用 下面可以有多个mapping 以下数据结构主要针对每个mapping进行说明 一级属性 二级属性 三级属性 说明 dynamic 新增字段自动模式 true 表示自动识别新字段并创建索引 f
  • 动态爬虫(ajax)-爬取bilibili热门视频信息

    文章目录 前言 一 页面分析 二 编写爬虫 1 引入库 2 发出请求 2 1生成请求头 2 2发出请求并获取响应 3 解析响应的内容 4 保存提取的信息到本地 5 康康主函数 三 运行结果 前言 使用python爬虫爬取bilibli每日热
  • VS2019利用Developer Command Prompt for VS 2019查看对象模型中的Class

    本文利用Developer Command Prompt for VS 2019工具 快速查看对象模型中类的结构 便于大家迅速了解衍生类和基类的关系 文章目录 一 打开开发人员命令提示工具 二 使用步骤 1 确定cpp文件位置 1 1 查找
  • chatGPT侧边栏历史记录消失解决方法

    从昨天3月8日开始 很多程序员发现自己的chatGPT打开后左侧侧边栏历史记录消失了 自己辛辛苦苦测试的Prompt都没有了 折腾了很久都不行 不得不重新写Prompt 解决方法 其实很简单 就是退出账号登录 然后重新登录账号再刷新就恢复了
  • QT界面UI文件不读取问题

    QT的C 项目有一段时间没有打开 重新打开时发现部分ui界面不知道为什么无法在QT Creator中用designer编辑器打开了 问题如下图 1 双击该ui界面不会自动跳转到界面编辑器了 2 可以随意更改ui界面的代码内容了 正常的ui界
  • C/C++使用Windows的API实现共享内存以及同步

    目录 共享内存 事件 Event 实现思路 创建方 服务端 连接方 进程同步 windows的API CreateFileMapping MapViewOfFile CreateEvent WaitForSingleObject Creat
  • 复习js笔记

    JS w3cschool官网 1000多本编程教程免费学 在日常中遇到的js函数 forms document forms name for in 循环 let x name lai age 18 city nanyang var y fo