JavaScript介绍

2023-05-16

文章目录

  • 一. JavaScript介绍
  • 二. JavaScript的引入方式
  • 三. JavaScript的变量与数据类型
  • 四. JavaScript中的函数
  • 五. JavaScript变量的作用域
  • 六. JavaScript运算符
  • 七. JavaScript判断语句
  • 八. JavaScript数组
  • 九. JavaScript循环语句
  • 十. JavaScript获取页面标签
  • 十一. JavaScript操作页面标签的属性
  • 十二. 定时器
  • 十三. JAvaScript的对象

一. JavaScript介绍

  • 定义: 运行在浏览器端的脚本语言
  • 作用: 行为标准, 负责和用户的交互
  • 使用场景: 需要和用户交互时

二. JavaScript的引入方式

  • 行内式
  • 内嵌式
  • 外链式

三. JavaScript的变量与数据类型

  • python中的数据类型
int float str bool list tuple set dict 自定义类(对象)
  • 语言的强弱

语言的强弱: 可以查看不同数据类型之间的变量是否可以直接进行加法运算
Python: 强类型语言, 字符串 + 数字 会报错
JavaScript: 弱类型语言, 字符串 + 数字 = 字符串

  • JavaScript中的变量
// 定义需要使用关键字 var
// 一行的结尾需要一个分号  ;
// 变量的数据类型由存储的数据值决定
var 变量名 = 数据值;
  • JavaScript的注释
// 单行注释, 快捷键 Ctrl + /

/* 
多行注释
多行注释
*/ 
  • JavaScript的常用数据类型
// 变量的定义, var 变量名 = 数据值;
// 变量名, 由字母 数字 下划线 $ 组成, 不能以 数字开头, 匈牙利命名风格(开头型简写)
// 1. 数字类型  number
// 1.1 整数  开头简写(i)
var iAge = 10;
// alert(iAge);  // 打印数据值
// alert(typeof(iAge)); // typeof(变量)  查看变量的数据类型
console.log(iAge);   // console.log() 在浏览器的控制台输出 
console.log(typeof(iAge));
// 1.2 小数  开头简写(f)
var fHeight = 174.4;
console.log(fHeight, typeof(fHeight));

// 2. 字符串类型 string   
// 开头简写(s)
var sName = 'isaac';
console.log(sName, typeof(sName));

// 3. 布尔类型 boolean 值(true, false)
// 开头简写(b)
var bIsTrue = true;
console.log(bIsTrue, typeof(bIsTrue));

// 4. 未定义的类型 undefined
// object 开头简写(o)
var oA;
console.log(oA, typeof(oA));

// 5. null
var oObject = null;
console.log(oObject, typeof(oObject));

四. JavaScript中的函数

  • python中函数的定义和调用
# 函数定义后,不会自动执行函数中的代码, 需要调用后才会执行
def 函数名(参数):  # 形参
    函数体
    return

函数名(参数)   # 实参
  • JS中函数的定义和调用
// 函数定义
function 函数名(参数) {
    函数体
    return
}

// 函数调用
函数名(参数)

五. JavaScript变量的作用域

局部变量, 全局变量

  1. 在函数内部能否直接读取全局变量的值 ====> 可以直接读取
  2. 在函数内部能否直接修改全局变量的值 ====> 可以直接修改
  3. 函数外部能否使用局部变量 ====> 函数外部不能访问局部变量的值
  4. 在函数内部定义变量, 如果不加 var 变量, 那么定义的变量是全局变量

六. JavaScript运算符

  • 算数运算符

+ - * / % ++ --
a++ —> a = a + 1
a-- —> a = a - 1

  • 赋值运算符

+= -= *= /= %=

  • 比较运算符

== 判断值是否相同, 只判断值, 不判断数据类型
=== 判断值和类型是否都相同
!= 不等于
> 大于
>= 大于等于
< 小于
<= 小于等于

  • 逻辑运算符

&& 逻辑与
|| 逻辑或
! 取反

  • 运算符优先级
  1. () 优先级最高
  2. 一元运算符 ++ – !
  3. 算数运算符, 先 * / % 后 + -
  4. 关系运算符 > >= < <=
  5. 相等运算符 == != ===
  6. 逻辑运算符 先 && 后||
  7. 赋值运算符 =

七. JavaScript判断语句

- 单分支
if (判断条件){
    条件成立执行的代码
}

- 双分支
if (判断条件){
    条件成立执行的代码
}else{
    条件不成立执行的代码
}

- 多分支
if (判断条件1){
    条件1成立时执行的代码
}else if (判断条件2){
    条件1不成立, 条件2成立时执行的代码
}else if(判断条件n){
    条件n-1不成立,条件n成立执行的代码
}else{
    以上条件都不成立,执行的代码
}

八. JavaScript数组

// 1. 数组的定义
// 1.1 使用 Array 类进行创建
var aArray = new Array(1, 2, 'hello');
console.log(aArray, typeof(aArray));
// 1.2 使用自变量方法进行创建
var aList = [1, 2, 3.14, 'isaac', [3, 6, 9]];
console.log(aList, typeof(aList));

// 2. 求数组中元素的个数, 数组的长度, 数组.length属性
console.log('元素的个数为: ', aList.length);

// 3. 数组支持下标操作, 但是没有负数下标
// 访问不存在的下标, 得到的值是 undefined
console.log(aList[0], aList[3], aList[100]);
// 可以通过下标修改数组中的数据
aList[3] = 'hello world';
console.log(aList);
// 直接修改不存在下标值, 在指定的下标位置添加数据, 其余位置为 空 ,使用 empty 来表示
aList[10] = 10;
console.log(aList, typeof(aList));

// 4. 根据数据值, 找到元素在数组中的第一个下标   indexOf
// 找到的话返回元素的下标, 没有找到则返回 -1
console.log(aList.indexOf('hello world'), aLisindexOf(1000));

// 5. 尾部添加和删除
aList.push('lang');
console.log(aList);
aList.pop();
console.log(aList);

// 6. 根据下标, 删除添加数据
// splice(下标, 删除元素的个数, 添加的元素)
aList.splice(2, 3); // 只删除, 不添加
console.log(aList);
aList.splice(2, 0, 3, 4, 5);
console.log(aList); // 只添加, 不删除
aList.splice(2, 2, 'hello', 'world'); // 删除后, 添加
console.log(aList);

九. JavaScript循环语句

// 1. while循环
while (判断条件){
    循环中的代码
}

// 2. for 循环
for(表达式1; 表达式2; 表达式3){
    循环中的代码
}

// 3. do while 循环, 不管条件是否成立, 至少循环一次
do{
    循环代码
}while(判断条件)

十. JavaScript获取页面标签

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <!-- <script>
        // getElementById通过id找到对应的标签, 找到了就返回对象,没有就返回 null
        var oDiv = document.getElementById('box');
        alert(oDiv + '----' +typeof(oDiv));
    </script> -->
    <script>
        // 解决方法二: 让标签全部定义完成之后, 在执行 js 代码
        // 标签全部定义之后, 会触发一个事件, window.onload 事件
        // 当前标签全部加载后, 执行函数中的代码 , JS 的入口函数
        window.onload = function(){    // 匿名函数    
            var oDiv = document.getElementById('box');
            alert(oDiv + '----' +typeof(oDiv));
        }
    </script>
</head>
<body>
    <div id="box">
        这是一个 div
    </div>

    <!-- 解决方案一, 把 script 写在标签后面,不建议使用 -->
    <!-- <script>
        // getElementById通过id找到对应的标签, 找到了就返回对象,没有就返回 null
        var oDiv = document.getElementById('box');
        alert(oDiv + '----' +typeof(oDiv));
    </script> -->
</body>
</html>

十一. JavaScript操作页面标签的属性

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        // 获取页面标签, 在入口函数中定义
        window.onload = function(){
            // 1. 获取input标签
            var oInput = document.getElementById('name');
            // 获取标签的各属性
            console.log('标签的name属性为: ', oInput.name);
            console.log('标签的class属性为: ', oInput.className);
            console.log('标签的value属性为: ', oInput.value);
            console.log('标签的style属性为: ', oInput.style.fontSize);  // 只能获取行内式的css属性
            // 设置标签的各属性
            oInput.value = 100;
            oInput.name = 'python';
            console.log('修改后标签的name属性为: ', oInput.name);

            // 获取div标签
            var oDiv = document.getElementById('div1');
            console.log(oDiv.innerHTML);    // 获取标签内容, 会连html标签一起获取
            console.log(oDiv.innerText);    // 只获取内容, 不获取html标签
            oDiv.innerHTML = '好好学习'    // 修改标签内容
        }
    </script>
</head>
<body>
    <input type="text" name="aaa" class="box" id="name" value="10" style="font-size: 30px;">
    <div id="div1">
        <p>
            这是一个div
        </p>
    </div>
</body>
</html>

十二. 定时器

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        var oT = null;
        function fnClick(){
            oT = setInterval(alert, 2000, '好好学习');
        }

        function fnCalc(){
            clearInterval(oT);
        }
    </script>
</head>
<body>
    <div>
        <p>点击单次定时器, 3s后弹出 hello</p>
        <!-- setTimeout(执行函数名, 时间间隔, 第一个函数参数的参数) -->
        <input type="button" value="单词定时器" onclick="setTimeout(alert, 3000, 'hello')">
    </div>
    <div>
        <p>点击多次定时器, 间隔 2s 弹出好好学习, 点击停止不再弹出</p>
        <input type="button" value="多次定时器" onclick="fnClick()">
        <input type="button" value="停止" onclick="fnCalc()">

    </div>
</body>
</html>

十三. JAvaScript的对象

  • 类似于Python中的字典
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        // JS 对象的两种创建方式
        // 方式一: new Object
        var oPersion = new Object();
        oPersion.name = 'zhangsan';
        oPersion.age = 22;
        //  添加方法
        oPersion.sayName = function(){
            alert(this.name);
        };
        // 调用属性
        alert(oPersion.age);
        // 调用方法
        oPersion.sayName();


        // 方式二: 使用字面量, 推荐使用
        oStudent ={
            name: 'lisi',
            age: 23,
            sayName: function(){
                alert(this.name);
            }
        }
        // 调用
        alert(oStudent.age);
        oStudent.sayName();
    </script>
</head>
<body>
    
</body>
</html>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaScript介绍 的相关文章

  • 如何使用 DataTables jquery 插件按日期排序?

    我正在使用 datatables jquery 插件并希望按日期排序 我知道他们有一个插件 但我找不到从哪里实际下载它 http datatables net plug ins sorting http datatables net plu
  • Google 组织结构图数据溢出到 div 之外

    我在一个项目中使用 Google Org 图表 图表的内容在包含的 div 之外流动 该 div 在下面以红色突出显示 我希望图表的节点能够移动到下一行 以防它流到 div 之外 爱丽丝将移动到下一行 数据将继续 See my 在这里摆弄
  • HTML5 视频结束倒计时

    我可以对 HTML5 视频的结束进行倒计时吗
  • JSON.stringify / 解析带有引号的奇怪内容

    我在解析一些包含引号的 JSON 时遇到了一个奇怪的小问题 我正在使用本机 JSON stringify 和 JSON parse 函数来执行此操作 如果我将一个对象 其中有引号的对象 字符串化 它们就会像人们所期望的那样被转义 如果我然后
  • 我可以从 React Native 项目中删除 tvOS 吗?

    Eventually I will be submitting a react native app to the app store but the app will only run on iOS not tvOS Will I be
  • 使用 Jest 模拟延迟() RxJS

    有没有简单的方法来嘲笑delay 例如 带有假时间的可观察对象中的 RxJS 方法 我有这个方法 register user return this checkLog user delay 500 flatMap 当我删除时delay 方法
  • Protractor 中 element(...) 和 element(...).getWebElement() 之间的区别

    为什么我们需要element getWebElement over element 当两者的工作原理完全相同时 为什么两个 API 具有相同的功能 Protractor是一个方便的包装WebDriverJS javascript 硒绑定 e
  • 单击单选按钮时事件触发的顺序是什么?

    我知道这在浏览器之间是不同的 例如如果我将一个函数附加到单选按钮的 onclick 和 onchange 事件 然后单击它 Chrome 会触发 onchange 然后触发 onclick 而 Firefox 则会执行相反的操作 是否有任何
  • 不显眼的 Javascript 混淆了事件处理

    你知道我最喜欢引人注目的 javascript 的什么吗 当你触发一个事件时 你总是知道它会做什么 a a 现在每个人都在喝这种不引人注目的酷爱饮料 这一点就不那么明显了 对绑定事件的调用可以发生在页面中包含的任意数量的 javascrip
  • onclick 和 href="javascript:函数名 之间有什么区别?

    有什么区别吗 1 a href Link1 a and 2 a href Link2 a 会以某种方式影响页面性能吗 如果您的元素实际上不应该将用户链接到某个地方 不要将其设为锚元素 如果您正在使用 a 标签只是为了改变下划线 光标 不要
  • 未捕获的类型错误:$(...).lightGallery 不是函数

    当我尝试单击该链接时 它会在浏览器控制台中显示 Uncaught TypeError lightGallery is not a function anonymous function index html 250dispatch jque
  • 自动播放视频的 canvas.drawimage 仅在视频元素可见时有效

    我试图通过将视频绘制到画布上来在视频上添加一些滤镜 问题是 当视频元素不在视图中时 它会停止绘制 理想情况下 我想将视频元素全部隐藏起来 我认为它只影响 Chrome 浏览器 另外 似乎如果您停止并用鼠标启动它 问题就会消失 functio
  • 如何在 javascript 中使用 .net 资源文件

    无论如何 我可以在 javascript 中访问我的资源文件 resx 吗 如果没有 那么是否有任何解决方法可以用不同语言的 javascript 显示消息 如果您的 javascript 在页面中 您可以使用 var globalReso
  • RegEx 从 CSS 背景样式中提取 URL

    我有一个这种形式的字符串 url http www example com imgs backgrounds bg80 jpg repeat scroll 10 0 transparent 这是来自某个元素的 CSS 样式 该元素目前在页面
  • 如果未登录则重定向 html 页面

    我的网页上有简单的登录表单 它使用 javascript 来登录用户并且工作正常 问题是 用户直接在地址栏中输入登陆页面 URL 他无需登录即可直接访问该页面 如果他没有登录 我想将他重定向到登录页面 以下是loding和目标页面的链接 l
  • Parse JS SDK:无法使用主密钥,尚未提供

    我需要在我的 angular2 应用程序中使用 masterKey 但我无法将其传递给initialize功能 我无法用谷歌搜索出原因 从package json parse 1 9 2 初始化 import Parse from node
  • 错误:找不到模块“@discordjs/opus”

    每次我运行不和谐的语音识别代码时 它都会上线 但一旦加入频道 我的代码就会显示错误 找不到模块 discordjs opus Require stack C Users SURYASH Desktop DiscordSpeechBot no
  • 从 select2 选定选项获取属性值

    我正在使用 Select2 插件http ivaynberg github io select2 select2 latest html http ivaynberg github io select2 select2 latest htm
  • 如何使我的滚动到顶部按钮动画流畅

    我的页面上有一个滚动到顶部按钮 但是当我单击它时 它不会滚动到顶部 它只是直接带我到顶部 就像我加载了一个新页面一样 但我需要的是滚动动画 javascript window onscroll function scrollFunction
  • window.open 未应用给定的高度参数

    我在链接上有一个 onclick 事件 其中执行了 url 的 window open 我还为其提供了自定义宽度和高度 但不接受它 并且弹出窗口以不同的宽度和高度显示 有人可以指导吗我这一定是哪里出了问题 我的 window open 语法

随机推荐

  • KEIL问题【打开文件太多造成任何按钮都不可点】【Keil4 编译时出现RL-ARM is not allowed with this license 】【 局部变量仿真显示not in scope】

    SYD8801是一款低功耗高性能蓝牙低功耗SOC xff0c 集成了高性能2 4GHz射频收发机 32位ARM Cortex M0处理器 128kB Flash存储器 以及丰富的数字接口 SYD8801片上集成了Balun无需阻抗匹配网络
  • Django(2)模板、标签

    文章目录 一 使用Django模板修改页面二 Django模板标签 变量 列表 字典 过滤器1 default2 length3 filesizeformat4 date5 truncatechars6 safe if else标签 for
  • Django(3)模型

    文章目录 一 Django 模型 ORM二 数据库配置三 定义模型 xff08 创建数据表 xff09 四 数据库基本操作 插入数据 获取数据 xff08 1 xff09 查询所有的数据行 xff08 2 xff09 where条件查询 x
  • Django(4)表单

    文章目录 一 概述二 GET方法三 POST方法四 Request对象五 QueryDict对象 此文章参考菜鸟教程 xff1a Django 表单 菜鸟教程 runoob com Django版本 xff1a span class tok
  • Django(5)视图

    文章目录 一 视图概述二 请求对象HttpRequest xff08 1 xff09 GET xff08 2 xff09 POST xff08 3 xff09 body xff08 4 xff09 path xff08 5 xff09 me
  • Django(6)路由

    文章目录 一 路由概述二 正则路径中的分组 xff08 1 xff09 正则路径中的无名分组 xff08 2 xff09 正则路径中的有名分组 xff08 3 xff09 路由分发 三 反向解析 xff08 使用reverse xff09
  • Django(7)Admin管理工具

    文章目录 一 概述二 使用管理工具 xff08 1 xff09 激活管理工具 xff08 2 xff09 使用管理工具 xff08 3 xff09 复杂模型 xff08 4 xff09 自定义表单 xff08 5 xff09 内联 xff0
  • Django(8)ORM单表实例

    文章目录 一 Django ORM 单表实例创建新模型 二 数据库操作 xff08 1 xff09 添加数据 xff08 2 xff09 查找数据 filter exclude get order by reverse count firs
  • Django(9)ORM多表实例

    文章目录 一 Django ORM 多表实例创建模型插入数据 二 ORM 插入数据一对多 外键 ForeignKey多对多 xff08 Many ToManyField xff09 xff1a 在第三张表添加数据 三 关联管理器 对象调用1
  • Django(10)ORM聚合查询

    文章目录 一 聚合查询 aggregate 二 分组查询 annotate 三 F 查询四 Q 查询 此文章参考菜鸟教程 xff1a Django ORM 多表实例 xff08 聚合与分组查询 xff09 菜鸟教程 runoob com D
  • Python类的常用魔法方法

    文章目录 一 96 init 96 二 96 str 96 三 96 del 96 四 96 repr 96 五 使用案例 一 init span class token comment 在Python类中 有一类方法 这类方法以 两个下划
  • ubuntu 升级内核实战

    ubuntu 12 04内核是linux 3 2 0 24 xff0c 其实升级到最新版本3 3 4也没什么很大意义 xff0c 主要是集成了一些新的驱动和一些普通用户用不到的功能 xff0c 所以基本上本文纯属折腾 xff0c 但不要随便
  • centos7安装python3不影响python2

    文章目录 一 前言二 安装python3 一 前言 Centos7中很多软件命令依赖于系统自带的python2 比如yum 卸载python2会造成yum不可用 所以没必要卸载python2 如果要使用python3 可以通过软链接的方式安
  • Python异常的传递以及完整结构

    文章目录 异常的传递 异常的完整结构 异常的传递 span class token triple quoted string string 34 34 34 异常的传递是异常处理的底层机制 是原理层面 异常传递 当一行代码发生异常后 会向外
  • Python互斥锁小技巧

    span class token triple quoted string string 34 34 34 需求 创建两个线程 其中一个输出 1 52 另一个输出 A Z 输出格式要求 12A 13B 56C 5151Z 34 34 34
  • Python-TCP服务端程序开发

    文章目录 一 TCP服务端程序开发二 端口复用三 判断客户端程序是否断开四 多任务版本 一 TCP服务端程序开发 span class token triple quoted string string 34 34 34 主动套接字 可以收
  • Python-TCP网络编程基础以及客户端程序开发

    文章目录 一 网络编程基础 什么是IP地址 什么是端口和端口号 TCP介绍 socket介绍 二 TCP客户端程序开发三 扩展 一 网络编程基础 什么是IP地址 IP地址就是标识网络中设备的一个地址 IP地址分为 IPv4 和 IPv6 I
  • HTML介绍

    文章目录 一 HTML介绍二 创建三 HTML结构四 常见的标签五 链接标签六 图片标签七 资源路径八 列表标签九 表格标签十 表单标签十一 表单提交 一 HTML介绍 HTML 超文本标记语言作用 书写前端页面前端三大技术 三大标准 HT
  • CSS介绍

    文章目录 一 CSS介绍二 CSS的引入方式三 CSS选择器 一 CSS介绍 定义 层叠样式表作用 美化界面 设置标签文字大小 颜色 字体加粗等样式控制页面布局 设置浮动 定位等样式 基本语法 选择器 样式规则 样式规则 属性名1 属性值1
  • JavaScript介绍

    文章目录 一 JavaScript介绍二 JavaScript的引入方式三 JavaScript的变量与数据类型四 JavaScript中的函数五 JavaScript变量的作用域六 JavaScript运算符七 JavaScript判断语