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.基础篇练习

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

JS基础入门篇( 一 )相关推荐

  1. JS基础入门篇(一)

    1.JS存放在代码中的位置 1.JS写在行间 <div style="background-color: red;" onclick="alert(1)" ...

  2. JS基础入门篇(四)—this的使用,模拟单选框,选项卡和复选框

    1.this的使用 thisjs中的关键字js内部已经定义好了,可以不声明 直接使用 this的指向问题1. 在函数外部使用this指向的是window2. 在函数内部使用有名函数直接调用函数 thi ...

  3. JS基础入门篇(四十三)—ES6(二)

    1.对象简洁表示法 原来写法 var name = "lzf";var gender = "male";var fn = function(){console. ...

  4. JS基础入门篇(三)— for循环,取余,取整。

    1.for循环 1.for的基本简介 作用:根据一定的条件,重复地执行一行或多行代码语法:for( 初始化 ; 判断条件 ; 条件改变 ){代码块} 2.for循环的执行顺序 <body> ...

  5. 恭喜本人的《Three.js基础入门》上线达人课!

    本人学习Three.js也有一年多了,接触这个库也两年左右,起初根本没有仔细的学习,想做一些绚丽的东西都无法实现.没想到学习一个框架能记这么多的笔记,从系统的学习Three.js到现在,大大小小的笔记 ...

  6. XSS注入基础入门篇

    XSS注入基础入门篇 1.XSS基础概念 2. XSS的分类以及示例 2.1 反射型XSS 2.1.1 示例1:dvwa low 级别的反射型XSS 2.1.2 攻击流程 2.2 DOM型XSS 2. ...

  7. 经典再现,看到就是赚到。尚硅谷雷神 - SpringBoot 2.x 学习笔记 - 基础入门篇

    SpringBoot 2.x 时代 – 基础入门篇 视频学习地址:https://www.bilibili.com/video/BV1Et411Y7tQ?p=112&spm_id_from=p ...

  8. 《Ansible权威指南 》一 第一篇 Part 1 基础入门篇

    本节书摘来自华章出版社<Ansible权威指南 >一书中的第1章,第1.1节,李松涛 魏 巍 甘 捷 著更多章节内容可以访问云栖社区"华章计算机"公众号查看. 第一篇 ...

  9. linux入门_Linux超详细0基础入门篇(一)

    首先要感谢大康老师对我在Linux操作系统上的教导. 今天来讲一下用途广泛的Linux的基础入门教程 仅仅是做入门使用,如果想更加深入的学习那就需要自己做探索了. 本次例子使用的是kali linux ...

最新文章

  1. SaaS项目管理软件有什么用?
  2. 【c语言】蓝桥杯算法提高 3-3求圆面积表面积体积
  3. JupyterLab 3.0,极其强大的下一代Notebook!
  4. Linux运维:CentOS7在防火墙中添加访问端口?
  5. jQuery判断checkbox是否选中的3种方法
  6. mysql相交_MySQL相交
  7. idft重建图像 matlab_利用 MATLAB 编程,打开一幅图像,对其进行 DFT 变换,并置其不同区域内的系数为零,进行 IDFT ,观察其输出效果。_学小易找答案...
  8. 一个页面多个ajax统一loading,页面有多个向后台发送的请求加载过程中显示loading,加载完成loading消失...
  9. mybatis xml中大于、小于、if else的写法
  10. Linux学习整理-网络防火墙iptables-实践篇2
  11. MS Project的开源替代品 OpenProj
  12. 快讯:永中集成Office的核心技术落入谁的手?
  13. Selenium加速执行方法
  14. 第三章 栈和队列(含答案)
  15. mysql左表有右表没有_查询左表存在而右表不存在的记录
  16. 同心向前,Google Play 十周年啦!
  17. “时间的朋友”2017跨年演讲全回顾
  18. ffmpeg音视频转单声道16位16K赫兹小端点pcm音频
  19. matlab左侧显示当前文件夹,matlab还原默认布局,matlab左侧显示
  20. Python练习3:求N的多次方

热门文章

  1. Android 第二十一课 RecyclerView简单的应用之编写“精美”的聊天页面
  2. 美学评价_卡美学的真正美
  3. PERFORMANCE-MONITORING(转)
  4. GitLab 在多分支中的一个push
  5. linux go环境安装和基本项目结构
  6. Android 中文 API (16) —— AnalogClock
  7. yum搭建本地仓库、国内源、下载rpm包、源码安装
  8. as3文本框的动态拖拽和编辑
  9. 我的KT库之----数据对象
  10. 【转】2007高校BBS上20个睿智的冷笑话