JavaScript 学习

news2024/9/28 7:25:24

一、输出

为方便调试可以输出内容,但是用户是看不到的。要在开发者模式中看。
console . log ( "Hello" );

二、外部文件引用

可以直接在html中写JS
    <head>
        <meta charset="utf-8">
        <script>
            console.log("hello")
        </script>
    </head>
也可以外部引用,先写一个JS文件,然后加载到html中。

三、变量

命名规则:
  • 名称可包含字母、数字、下划线(_)和美元符号($),不以数字开头
  • 名称对大小写敏感(y 和 Y 是不同的变量)
  • 保留字(比如 JavaScript 的关键词)无法用作变量名称
声明:
用var。声明之后,变量是没有值的。(技术上,它的值是 undefined。)
赋值:
var carName;
carName = "porsche";
var carName = "porsche";
var person = "Bill Gates", carName = "porsche", price = 15000;
这些方式都可以。
作用范围:
局部变量,在函数内声明,只能在函数内使用。
// 此处的代码不能使用 carName
function myFunction() {
    var carName = "Volvo";
    // 此处的代码可以使用 carName
}
// 此处的代码不能使用 carName
全局变量,在函数外声明,全局访问。
PS:和java不一样,js没有代码块概念。
if(b){
    var num=10;
}
console.log(num);
在java中,这样是不行的,在js中,可以。num是全局变量。 

四、数据类型

1.number类型:
1/0在java中会出错,这边表示负无穷大。
NaN就字符串转换数字的时候出错了,转不了。
转换:
        可以将数字字符串转换Number类型,比较严谨不想parseFloat,“11a”也会转成11
var n = Number("123");
        也可以用parseInt和parseFloat,功能比较全。都会输出123
console.log(parseInt("123"));
console.log(parseInt("123agsdg"));
console.log(parseInt("123aaaa456"));
console.log(parseInt(" 123 "));
2.boolean类型:
就是true和false比较简单。
转换:
        当value为0、-0、null、""、false、undefined、NaN时,那么Boolean()转换成Boolean类型的值为false,其他都是true。
var b = Boolean(0);
3.undefined类型:
声明了变量,但是没用赋值就是这个值。
4.string类型:
不区分单引号和双引号,都是字符串。
转换:
        可以把这些转成string
var s1 = String(11);
var s2 = String(true);
var s3 = String(undefined);
var s4 = String(null);
var s5 = String(NaN);
5.null类型:
好比java中,声明了对象,没创建对象。
但是JS中,输出null的时候会是object类型。

五、运算符

1.算术运算符(+ - * / % ++ --)
/ 除法,有余数和java不一样
%取余数
++ -- 自增 自减
单独使用在前在后没区别
组合使用,在前先自增,再将自增结果带入运算;在后先把原来值带入运输,再自增。
var num = 1;
var num2 = ++num;
console.log(num);
console.log(num2);
都是2
var num = 1;
var num2 = num++;
console.log(num);
console.log(num2);
num为2,num2为1
2.赋值运算符(= += *= /= %=)
3.条件运算符(=== == > < >= <= !=)
4.字符串运算符(+ +=)
5.逻辑运算符(&& || !)
6.三元运算符 (表达式1?表达式2:表达式3)

六、条件/循环语句

和Java差不多

七、函数

JavaScript 函数通过 function 关键词进行定义,其后是函数名和括号 ()。
函数名可包含字母、数字、下划线和美元符号(规则与变量名相同)。
圆括号可包括由逗号分隔的参数
由函数执行的代码被放置在花括号中:{}
var x = myFunction(7, 8);        // 调用函数,返回值被赋值给 x
function myFunction(a, b) {
    return a * b;                // 函数返回 a 和 b 的乘积
}

八、常用内置对象

可以去这查看 JavaScript 教程
关键是如何去查看文档,学习对象和方法。
1.字符串对象  JavaScript String 参考手册
用“”,‘’就可以创建字符串对象。如果字符串中要输出“,‘,\,要用\来转义。
常用方法:
charAt()  返回指定位置处的字符。
indexOf()  返回值在字符串中第一次出现的位置。
2.数组
创建
常见操作
3.Math对象
主要是数学相关
4.日期对象
JavaScript Date 参考手册
5.正则对象
匹配字符串个数为6-12的字符串。

九、对话框

警告(window可以省略)
window.alert("这是警告");
询问
var key = prompt("请输入密码");
console.log(key);
确认
var flag = confirm("确认登陆吗?");
if(flag){
    console.log("确认登陆");
}else{
    console.log("取消登陆");
}

十、定时器

每2s执行一次,10s后执行一次(之后不执行)

十一、自定义对象

用new关键字创建
var obj = new Object();
obj.name = "Mike";
obj.fun = function (age) {
    console.log("Hello " + this.name + age);
}
//使用对象
console.log(obj.name);
obj.fun(1);
字面量创建
var obj = {
    name: "Mike",
    fun: function (age) {
        console.log("Hello " + this.name + age);
    }
}
//使用对象
console.log(obj.name);
obj.fun(1);
构造方法创建对象

十二、DOM操作

把文档加载进去,然后把每个部分封装成对象,我们可以操作这些对象,实现动态的改变整个页面。
1.Document对象
如果您希望访问 HTML 页面中的任何元素,那么您总是从访问 document 对象开始。
查找HTML元素:
  • getElementById
    根据id属性获取,返回单个Element对象
  • getElementsByTagName
    根据标签名获取,返回Element对象数组
  • getElementsByClassName
    根据class属性获取,返回Element对象数组
  • getElementsByName
    根据name属性获取,返回Element对象数组
<body>
<h2>通过 Id 查找 HTML 元素</h2>
<p id="intro">Hello World!</p>
<p>此示例演示了 <b>getElementsById</b> 方法。</p>
<p id="demo"></p>
<script>
var myElement = document.getElementById("intro");
document.getElementById("demo").innerHTML =
"介绍段落的文字是" + myElement.innerHTML;
</script>
</body>
改变HTML元素:
属性
描述
element.innerHTML = new html content
改变元素的 inner HTML
element.attribute = new value
改变 HTML 元素的属性值
element.setAttribute(attributevalue)
改变 HTML 元素的属性值
element.style.property = new style
改变 HTML 元素的样式
添加删除元素:
document.createElement(element)
创建 HTML 元素
document.removeChild(element)
删除 HTML 元素
document.appendChild(element)
添加 HTML 元素
document.replaceChild(element)
替换 HTML 元素
document.write(text)
写入 HTML 输出流
添加事件:
方法
描述
document.getElementById(id).onclick = function(){code}
向 onclick 事件添加事件处理程序
2.Element对象
3.插入删除节点
插入
删除 - 父删子,不能自己删自己
4.DOM表单操作
    <div>
        <form action="#" method="get">
            姓名:<input type="text" name="username" id="username"><br>
            女<input type="radio" name="sex" value="female" id="female" checked="true"><input type="radio" name="sex" value="male"
                id="male"><br>
            故乡:<select name="city" id="city">
                <option value="1" id="shanghai">上海</option>
                <option value="2" id="beijing">北京</option>
                <option value="3" id="suzhou">苏州</option>
                <option value="4" id="guangzhou">广州</option>
            </select><br>
            <input type="submit">
        </form>
    </div>
</body>
// 获取/设置表单的value信息
var username = document.getElementById("username");
username.value = "张三";
console.log(username.value);
//获取单选框选择状态,或设置选择状态
var sexObj = document.getElementsByName("sex")
for (var i = 0; i < sexObj.length; i++) {
    console.log(sexObj[i].value + " " + sexObj[i].checked);
}
//设置下拉框
var select = document.getElementById("city");
select.selectedIndex = 2;
//设置禁用
var sex = document.getElementById("male");
sex.disabled = true;
5.常见DOM事件
  • 单击事件
var btn = document.getElementById("btn");
btn.onclick = function(){
    var ele = document.getElementById("h1");
    ele.style.color="red";
}
  • 焦点事件
    <div>
        用户名:<input type="text" id="username"><span id="info"></span>
    </div>
var userEle = document.getElementById("username");
var info = document.getElementById("info");
//获得焦点
userEle.onfocus = function () {
    info.innerHTML = "请输入6-8位"
}
//失去焦点
userEle.onblur = function () {
    var reg = /^\w{6,8}$/;
    var result = reg.test(userEle.value)
    if (result) {
        info.innerHTML = "验证成功"
    } else {
        info.innerHTML = "验证失败"
    }
}
  • 改变事件
    <select name="city" id="city">
        <option value="suzhou">苏州</option>
        <option value="shanghai">上海</option>
        <option value="beijing">北京</option>
    </select>
var city = document.getElementById("city");
city.onchange = function () {
    console.log(this.value);
}
  • 鼠标移入移出事件
<head>
    <meta charset="utf-8">
    <style>
        .red {
            background-color: red;
        }
        .blue {
            background-color: blue;
        }
    </style>
</head>
<body>
    <div id="test" class="red">Hello World</div>
</body>
var ele = document.getElementById("test");
//移入
ele.onmouseover = function () {
    ele.setAttribute("class", "blue");
}
//移出
ele.onmouseout = function () {
    ele.setAttribute("class", "red");
}
  • 页面加载事件
<head>
    <meta charset="utf-8">
    <script>
        window.onload = function(){
            //正常是无法拿到,因为在元素没加载完成,但是在这可以
            var ele = document.getElementById("test");
            console.log(ele);
            console.log("页面加载完成");
        }
    </script>
</head>
<body>
    <div id="test">Hello World</div>
</body>
  • 表单事件
<body>
    <form action="#" id="form">
        <input type="text" name="user" id="user" placeholder="Please enter user name...">
        <input type="text" name="password" id="password" placeholder="Please enter password...">
    </form>
    <button id="submit">submit</button>
    <button id="reset">resest</button>
</body>
var form = document.getElementById("form");
var submit = document.getElementById("submit");
var reset = document.getElementById("reset");
submit.onclick = function () {
    form.submit();
}
reset.onclick = function () {
    form.reset();
}
6.BOM常用对象
Window
Location
History
  • history.back() - 等同于在浏览器点击后退按钮
  • history.forward() - 等同于在浏览器中点击前进按钮

十三、原型

原型
有时,您希望向所有给定类型的已有对象添加新属性(或方法)。
有时,您希望向对象构造器添加新属性(或方法)。
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;}
Person.prototype.nationality = "English";
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;}
Person.prototype.name = function() {
return this.firstName + " " + this.lastName;};

十四、JS版本

JS2015(es6)
  • let
  • const
const 语句允许您声明常量(具有常量值的 JavaScript 变量)。
常量类似于 let 变量,但不能更改值。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2168655.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

微服务——服务保护(Sentinel)(一)

1.雪崩问题 级联失败或雪崩问题指的是在微服务架构中&#xff0c;由于服务间的相互依赖和调用&#xff0c;当一个服务出现故障时&#xff0c;会引起调用它的服务也出现故障&#xff0c;进而引发整个调用链路的多个服务都出现故障&#xff0c;最终导致整个系统崩溃的现象。 产生…

Redis配置文件详解(上)

一、Redis的核心配置文件 redis.conf是redis的核心配置文件&#xff0c;位于redis解压后目录的根目录&#xff0c;配置文件的内容根据不同的功能划分为多个模块。redis的注释信息写得也是非常详细的&#xff0c;以下是对部分重要得配置做简单的分析 二、基础配置信息 这部分…

CTF ciscn_2019_web_northern_china_day1_web1复现

ciscn_2019_web_northern_china_day1_web1 复现&#xff0c;环境源于CTFTraining 分析 拿到题目扫描&#xff0c;发现没有什么有用资产 扫描过程中注册账号登录&#xff0c;发现上传入口 上传文件&#xff0c;发现下载删除行为&#xff0c;寻找功能点&#xff0c;发现不能访问…

【Redis入门到精通七】详解Redis持久化机制(AOF,RDB)

目录 Redis持久化机制 1.RDB持久化 &#xff08;1&#xff09;手动触发RDB持久化 &#xff08;2&#xff09;自动触发RDB持久化 &#xff08;3&#xff09;Redis文件相关处理 &#xff08;4&#xff09;RDB持久化的优缺点 2.AOF持久化 &#xff08;1&#xff09;AOF工作…

基于nodejs+vue的农产品销售管理系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码 精品专栏&#xff1a;Java精选实战项目…

AIGAME的核心技术竞争力与未来生态规划

AIGAME凭借其领先的区块链和人工智能技术&#xff0c;打造了全球首个融合链游、DeFi和加密聊天的Web3娱乐平台。平台的核心技术创新和多元化生态规划&#xff0c;将推动全球虚拟资产管理和娱乐行业的变革。 AIGAME的核心技术竞争力源于其对区块链和人工智能&#xff08;AI&…

你知道吗?制造手机芯片的关键竟然是一台“打印机”?

在我们每天离不开的智能手机里&#xff0c;藏着一颗小小的“心脏”——芯片。它虽小&#xff0c;却拥有着强大的计算能力&#xff0c;能够让我们随时随地与世界保持连接。你可能想象不到&#xff0c;制造这些精密芯片的关键设备&#xff0c;竟然与我们日常使用的打印机有着惊人…

Jmeter实战——编写博客标签模块增删改查自动化脚本和压测

一、自动化脚本架构搭建 1、添加setUp线程组&#xff0c;测试标签新增功能&#xff1b;添加tearDown线程组&#xff0c;测试标签删除功能 这里可以将标签的增删改查写到一个线程组&#xff0c;但是为了实践setUp和tearDown线程组的使用&#xff0c;将它们写到不同线程组中了。…

C/C++—有关日期类的OJ题

✨✨ 欢迎大家来到小伞的大讲堂✨✨ &#x1f388;&#x1f388;养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; 所属专栏&#xff1a;C学习 小伞的主页&#xff1a;xiaosan_blog 1.计算日期到天数的转换(简单) 计算日期到天数转换__牛客网 (nowcoder.com)​​…

Qt-QTreeWidget多元素控件(38)

目录 描述 QTreeWidget 方法 QTreeWidget 信号 QTreeWidgetItem 属性 QTreeWidgetItem 方法 控制 使用 界面操作 代码操作 总结 描述 使⽤ QTreeWidget 表⽰⼀个树形控件.⾥⾯的每个元素,都是⼀个 QTreeWidgetItem ,每个 QTreeWidgetItem 可以包含多个⽂本和图标,每…

电脑系统重装系统盘文件还能恢复吗?

当我们的电脑出现中病毒、系统文件受损、系统变慢、无法启动或蓝屏等情况&#xff0c;大部分朋友都会选择重装系统。但重装系统后原来保存在系统盘的文件都会被删除。遇到这种情况&#xff0c;我们还有方法可以恢复之前保存在系统盘的文件吗&#xff1f; 一、从备份中恢复数据 …

智能优化算法-人工鱼群优化算法(ASFA)(附源码)

目录 1.内容介绍 2.部分代码 3.实验结果 4.内容获取 1.内容介绍 人工鱼群优化算法 (Artificial Fish Swarm Algorithm, AFSA) 是一种基于群体智能的元启发式优化算法&#xff0c;它模拟了鱼群的觅食、聚群和避障行为&#xff0c;用于解决复杂的优化问题。 AFSA的工作机制主要…

Xilinx的JESD204B PHY层IP仿真及上板测试(JESD204B四)

本文配置JESD204B PHY的参数&#xff0c;分析其示例工程&#xff0c;并且对该IP进行仿真&#xff0c;由于该IP只是物理层&#xff0c;并没有上层协议&#xff0c;因此与GTX/H其实没有太大区别。 1、配置IP 如下图所示&#xff0c;在IP Catalog中搜索JESD204B的PHY&#xff0c;…

国产RISC-V案例分享,基于全志T113-i异构多核平台!

RISC-V核心优势 全志T113-i是一款双核Cortex-A7@1.2GHz国产工业级处理器平台,并内置玄铁C906 RISC-V和HiFi4 DSP双副核心,可流畅运行Linux系统与Qt界面,并已适配OpenWRT系统、Docker容器技术。 而其中的RISC-V属于超高能效副核心,主频高达1008MHz,标配内存管理单元,可运…

python 魔法方法简记

简单记录python中的魔法方法 一、构造与析构 __init__(self[,...]) 需要初始化时可重写__init__方法 __new__(cls[,...]) 以类为参数&#xff0c;返回实例化对象 __del__(self) 前两个为构造器&#xff0c;此为析构器&#xff0c;用于销毁对象 二、算术运算 1、算术运算…

大文件想要传输成功,怎么把ZIP文件分卷压缩

不知道各位小伙伴有没有这样的烦恼&#xff0c;发送很大很大的压缩包会受到限制&#xff0c;为此&#xff0c;想要在压缩过程中将文件拆分为几个压缩包并且同时为所有压缩包设置加密应该如何设置&#xff1f; 方法一&#xff1a;使用7-Zip免费且强大的文件管理工具 7-Zip也是一…

MATLAB定位程序与讲解【专栏介绍】

AOA&#xff08;到达角度&#xff09;定位原理&#xff1a; 描述了基于到达角度进行定位的方法&#xff0c;适用于一维、二维或三维空间。 由动静压之比求马赫数的MATLAB函数&#xff1a; 提供了一个计算马赫数的函数&#xff0c;用于流体力学中速度的计算。 三边法定位与三点法…

【电子通识】案例:连接器接线顺序评估为什么新人总是评估不到位?

在一个IC卡切换的工装板(一切多)中,设计需求是一张PCB(充当活动卡片)插入读卡器,将卡片中的所有信号引出通过连接器连接到后级设备。 比如下图所示是一种IC卡压力测试设备,使用钢片卡片将压力信号通过连接器引入测试设备。 最后根据ISO/IEC 7816-2标准中我们看到…

hexo本地部署-图文教程

hexo本地部署-图文教程 最终效果前置条件安装使用配置主题创建页面标签页分类页友链页404页 个性化设置语言及网站信息设置导航栏,菜单目录头像及背景封面图美化特效 模板页的配置说明页面 Front-matter文章 Front-matter 最终效果 前置条件 你的电脑需要有git,node环境 安装使…

MySQL 中优化 COUNT()查询的实用指南

在 MySQL 数据库的使用中&#xff0c;我们经常会用到 COUNT()函数来统计行数或满足特定条件的行数。然而&#xff0c;在处理大规模数据时&#xff0c;COUNT()查询可能会变得非常缓慢&#xff0c;影响数据库的性能。那么&#xff0c;如何在 MySQL 中优化 COUNT()查询呢&#xff…