JS基础入门篇( 一 )

1.JS存放在代码中的位置

1.JS写在行间

<div style="background-color: red;" onclick="alert(1)" >hello world</div>
  • 优点:直接,简单
  • 缺点:不方便复用和维护,不符合结构行为分离规范

2.JS写在script ( 一般写在body结束标签之前 )
因为JS的执行顺序,需要将元素加载完成,才能获取到元素,故一般写在body结束标签之前。

<body><div id="box">hello</div><div id="box2">world</div>    <script>document.getElementById("box").onclick = function(){alert(1);};document.getElementById("box2").onclick = function(){alert(2);};</script>
</body>

优点:只要是在这个页面中就可以使用这段 js。
缺点: 1. 不方便修改维护 2. 不符合规范

3.写在js文件中

1.创建一个js文件,写入js代码
2.让html文件 和js文件产生关联,通过script标签的 src 属性 链接到js文件。

<body><div id="box">miaov</div><script src="index.js"></script>
</body>

优点:

1.结构 行为 完全分离
2.方便修改维护
3.可复用性强    

2.JS执行的顺序

针对js的存放位置,如果js放在script标签中,必须放到body结束标签之前原因是js会读取dom节点,必须等到dom节点都加载完成了,js代码才取得到对应节点。

如果JS代码非要放在所有节点之前呢???
可以将script代码写到head中,用window.onload把代码块包起来放到script中。

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title></title><style>#box{width:100px;height:100px;background-color:red;}</style><script>window.onload = function(){document.getElementById("box").onclick = function(){alert(1);}}</script></head><body>    <div id="box">miaov</div></body>
</html>

以上方法不支持,因为window.onload是等到页面所有dom节点,图片资源加载完成才执行的。如果图片资源很多的话,那么用户对页面的操作就无效了。所以,一般放在body结束标签之前。

3.注释

分为单行注释和多行注释。

  •  //单行注释//单行注释//单行注释
    
  •  /*多行注释多行注释多行注释*/

4.变量

  • 变量:可变的量。
  • 作用:复用数据,存储数据。
  • 申明变量: var 变量名; 以分号结束 。只申明一个变量不赋值的话,那这个变量中默认存储的是undefined
  • 变量命名规范:可以是数字(1234567890) 字母(abcdefg...)下划线 ( _ )美元符( $ )组成。
    禁止:

     1. 不允许数字开头     2. 不允许使用关键字3. 不允许使用保留字
推荐:
驼峰式命名法+语义化单词
驼峰式命名法:从第二个单词开始,每个单词的首字母大写。
  • 属性操作 :

以下三种写法都可以。

box.style["background-color"] = "green";
box["style"]["background-color"] = valStr;
box.style.backgroundColor = "green";
  1. 如果[ ]中间没有用引号包起来,那么会把中间的内容当做变量处理。
  2. 当需要改变的属性值是一个变量的时候只能使用[ ],方括号中间如果是变量的话,不需要加引号。
  3. 当操作属性的时候属性名不符合变量命名规范的时候可以使用[ ]。
  4. 如果一定要使用点( . )的话,需要改变成驼峰式命名法。

5.函数

(一)简介

  • 函数的作用:代码块的复用
  • 函数的分类:
    1.有名函数
    2.匿名函数

(二)使用

1-有名函数声明:function 函数名(){ 代码块 }调用:函数名();2-匿名函数声明: 直接声明一个匿名函数 会报错调用:可以直接通过事件调用

eg:
案例一:有名函数的声明和调用
案例二:匿名函数直接声明会报错,可以通过事件调用
案例三:有名函数的错误调用,btn.onclick = fn();这样调用是错误的,只会使函数立刻执行,传给点击事件的是个null。没有点击click按钮,直接打开就发生变化了。
案例三:有名函数的正确调用,btn.onclick = fn;这样调用是正确的。点击click按钮,红色方块才发生变化

6.innerHTML 和 src

innerHTML:修改双标签里面的内容。
innerHTML举例:以下代码的作用是,点击页面任何位置,修改红色方块的内容。
src:需要注意的是,在js中,img.src获取到的是绝对路径,很少进行比较。

7.基础篇练习

看完以上的小伙伴,可以看两个例子的效果,试着做一下。
练习一:点击按钮,设置方块大小
练习二:点击按钮,增加或减小字体大小

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

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

相关文章

开源许可证,欢迎来到云时代

出品 | OSC开源社区&#xff08;ID&#xff1a;oschina2013)作者 | 唐建法前言开源许可证从最早的 GPL 开始&#xff0c; 逐渐演进到 GPLv2 和 v3&#xff0c;中间还有 Apache、MPL、AGPL、LGPL 等&#xff0c;但是近几年来有一批新的许可证的出现&#xff0c;引起了社区的一些…

selenium - Select类 - 下拉框

WebDriver提供了Select类来处理下拉框。 如百度搜索设置的下拉框&#xff0c;如下图&#xff1a; from selenium import webdriver from selenium.webdriver.support.select import Select from time import sleepdriver webdriver.Chrome() driver.implicitly_wait(10) drive…

.NET 7 预览版 7

点击上方蓝字关注我们&#xff08;本文阅读时间&#xff1a;12分钟)今天我们发布了 .NET 7 预览版 7。这是 .NET 7 的最后一个预览版&#xff0c;下一个版本将是我们的第一个候选版本 &#xff08;RC&#xff09;。.NET Conf 2022 的日期已经公布&#xff01;请于 2022 年 11 月…

android--------volley之网络请求和图片加载

为什么80%的码农都做不了架构师&#xff1f;>>> Volley是 Google 推出的 Android 异步网络请求框架和图片加载框架。 Volley的特性 封装了的异步的请求API。Volley 中大多是基于接口的设计&#xff0c;可配置性强。一个优雅和稳健的请求队列&#xff0c;一定程度符…

经典算法学习——冒泡排序

冒泡排序是我们学习的第一种排序算法。应该也算是最简单、最经常使用的排序算法了。无论怎么说。学会它是必定的。今天我们就用C语言来实现该算法。演示样例代码已经上传至&#xff1a;https://github.com/chenyufeng1991/BubbleSort算法描写叙述例如以下&#xff1a;&#xff…

Mybatis之设计模式之装饰者模式

了解&#xff0c;什么是装饰者模式? 1.定义 装饰模式是在不必改变原类文件和使用继承的情况下&#xff0c;动态地扩展一个对象的功能。它是通过创建一个包装对象&#xff0c;也就是装饰来包裹真实的对象。 2.特点 1 装饰对象和真实对象有相同的接口。这样客户端对象就能以和真…

一天掌握Android JNI本地编程 快速入门

一、JNI&#xff08;Java Native Interface&#xff09; 1、什么是JNI&#xff1a;JNI(Java Native Interface):java本地开发接口JNI是一个协议&#xff0c;这个协议用来沟通java代码和外部的本地代码(c/c) 外部的c/c代码也可以调用java代码2、为什么使用JNI&#xff1a;效率上…

[转]CentOS 7忘记root密码解决办法

转自&#xff1a;http://www.linuxidc.com/Linux/2016-08/134034.htm 亲测可用&#xff01; CentOS 7 root密码的重置方式和CentOS 6完全不一样&#xff0c;CentOS 7与之前的版本6变化还是比较大的&#xff0c;以进入单用户模式修改root密码为例。 1.重启开机按esc 2.按e 3.编…

美链BEC合约漏洞技术分析

这两天币圈链圈被美链BEC智能合约的漏洞导致代币价值几乎归零的事件刷遍朋友圈。这篇文章就来分析下BEC智能合约的漏洞 <!-- more --> 漏洞攻击交易 我们先来还原下攻击交易&#xff0c;这个交易可以在这个链接查询到。我截图给大家看一下&#xff1a; 攻击者向两个账号转…

vue 公众号扫描_vue编写微信公众号打开相机功能

vue编写微信公众号打开相机功能&#xff0c;什么都不多说直接上代码页面布局代码class"previewer-demo-img":key"index":src"item.src"width"100"click"previewImg(index)">1.微信config初始化前端代码initWxConfig() {l…

SQL Server-聚焦NOT IN VS NOT EXISTS VS LEFT JOIN...IS NULL性能分析(十八)

前言 本节我们来综合比较NOT IN VS NOT EXISTS VS LEFT JOIN...IS NULL的性能&#xff0c;简短的内容&#xff0c;深入的理解&#xff0c;Always to review the basics。 NOT IN、NOT EXISTS、LEFT JOIN...IS NULL性能分析 我们首先创建测试表 USE TSQL2012 GOCREATE SCHEMA [c…

global using 的另类用法

前言global using 指令在 C# 10 中被引入&#xff0c;意味着 using 将应用于编译中的所有文件&#xff08;通常是一个项目&#xff09;。比如&#xff1a;global using System.Text;则在同一项目的其他位置&#xff0c;可以直接使用 System.Text 下的所有类型而无需再次声明 us…

利用 Node.js 实现 SAP Hana 数据库编程接口

为什么80%的码农都做不了架构师&#xff1f;>>> 自 SAP HANA SP 11 之后&#xff0c;可以使用 Node.js 作为 Hana 的编程接口。SAP 将 Application server 简称为 XS。现在 XS 已经演化为 Advanced 版本。为了区别&#xff0c;早期的 XS 被称为 XS Classical。 从下…

WPF 实现自绘验证码

WPF 实现自绘验证码控件名&#xff1a;VerifyCode作者&#xff1a;WPFDevelopersOrg原文链接&#xff1a; https://github.com/WPFDevelopersOrg/WPFDevelopers框架使用大于等于.NET40&#xff1b;Visual Studio 2022;项目使用 MIT 开源许可协议&#xff1b;如何通过DrawingV…

css中的单位换算_CSS单位px、em、rem及它们之间的换算关系

作者:WangMin格言:努力做好自己喜欢的每一件事国内的设计师大都喜欢用px&#xff0c;而国外的网站大都喜欢用em和rem&#xff0c;那么三者的区别与优势是什么&#xff1f;接下来我们就来学习一下吧&#xff01;单位px、em、rem分别表示什么&#xff1f;1、 px(Pixel) 相对于显示…

【MAC】Ncnn 编译so文件方案

【MAC】Ncnn 编译so文件方案 1、下载ncnn github地址是&#xff1a;https://github.com/Tencent/ncnn 指定目录&#xff1a;在终端或者git管理工具 输入&#xff1a;git clone https://github.com/Tencent/ncnn.git 2、编译Ncnn 2.1 Mac平台 安装cmake、wget&#xff08;根据实…

SSM学习注意杂记

2019独角兽企业重金招聘Python工程师标准>>> 1.spring导包时一定要版本对应&#xff0c;最好不要导不同版本的包&#xff0c;还有mybatis的包&#xff0c;springmvc的包&#xff0c;三个框架的包都需配套&#xff0c;要不然会出现一些想象不到的错误。 2.mybatis写映…

《ASP.NET Core 6框架揭秘》实例演示[15]:针对控制台的日志输出

针对控制台的ILogger实现类型为ConsoleLogger&#xff0c;对应的ILoggerProvider实现类型为ConsoleLoggerProvider&#xff0c;这两个类型都定义在 NuGet包“Microsoft.Extensions.Logging.Console”中。ConsoleLogger要将一条日志输出到控制台上&#xff0c;首选要解决的是格式…

《HeadFirst Python》第一章学习笔记

对于Python初学者来说&#xff0c;舍得强烈推荐从《HeadFirst Python》开始读起&#xff0c;这本书当真做到了深入浅出&#xff0c;HeadFirst系列&#xff0c;本身亦是品质的保证。这本书舍得已在《Python起步&#xff1a;写给零编程基础的童鞋》一文中提供了下载。为了方便大家…

Oracle-13:Oracle中的表分区

------------吾亦无他,唯手熟尔&#xff0c;谦卑若愚&#xff0c;好学若饥------------- 本篇博客记录了表分区 表分区的含义&#xff1a; 典型的拿空间换时间的案例&#xff01; 表分区对一张表进行分区&#xff0c;分区之后表中的数据存在相对应的分区内&#xff08;可以是不…