当前位置: 首页 > news >正文

什么是JavaScript(快速入门)

目录

1、什么是JavaScript

概述

历史

特点

2、基本使用及HelloWorld

1、引入JavaScript

2、基本语法  

 网页功能(F12):

3、浏览器控制台使用

4、数据类型快速浏览

变量

Number

字符串  

布尔值 

逻辑运算  

比较运算符

浮点数问题

null和undefined  

数组  

对象

5、严格检查模式strict


1、什么是JavaScript

概述

  • JavaScript是一门世界上最流行的脚本语言
  • JavaScript是Web开发领域中的一种功能强大的编程语言,主要用于开发交互式的Web页面。在计算机、手机等设备上浏览的网页,其大多数的交互逻辑几乎都是由JavaScript实现的。
  • 对于制作一个网页而言,HTML、CSS和JavaScript分别代表了结构、样式和行为,结构是网页的骨架,样式是网页的外观,行为是网页的交互逻辑,如下图所示。

 

JavaScript 与 HTML 和 CSS 共同构成了我们所看到的网页,其中:

  • HTML 用来定义网页的内容,例如标题、正文、图像等;
  • CSS 用来控制网页的外观,例如颜色、字体、背景等;
  • JavaScript 用来实时更新网页中的内容,例如从服务器获取数据并更新到网页中,修改某些标签的样式或其中的内容等,可以让网页更加生动。
     

历史

  • ECMAScript可以理解为JavaScript的一个标准
  • 最新版本已经到es6
  • 但是大部分浏览器还只停留在支持es5代码上
  • 开发环境~线上环境,版本不一致

 布兰登·艾奇,JavaScript 创始人

特点

  1. 解释型脚本语言:JavaScript 是一种解释型脚本语言,与 C、C++ 等语言需要先编译再运行不同,使用 JavaScript 编写的代码不需要编译,可以直接运行。
  2. 面向对象:JavaScript 是一种面向对象语言,使用 JavaScript 不仅可以创建对象,也能操作使用已有的对象
  3. 弱类型:JavaScript 是一种弱类型的编程语言,对使用的数据类型没有严格的要求,例如您可以将一个变量初始化为任意类型,也可以随时改变这个变量的类型。
  4. 动态性:JavaScript是一种采用事件驱动的脚本语言,它不需要借助 Web 服务器就可以对用户的输入做出响应,例如我们在访问一个网页时,通过鼠标在网页中进行点击或滚动窗口时,通过 JavaScript 可以直接对这些事件做出响应。
  5. 跨平台:JavaScript不依赖操作系统,在浏览器中就可以运行。因此一个 JavaScript 脚本在编写完成后可以在任意系统上运行,只需要系统上的浏览器支持 JavaScript 即可。
     

2、基本使用及HelloWorld

1、引入JavaScript

(1)内部标签

<!--    script标签内,写JavaScript代码-->
    <script>
        // 弹窗
        alert('hello world');
    </script>

输出效果:

 

 

(2)外部引入

我的第一个JavaScript程序.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>

    <!--    script标签内,写JavaScript代码-->
    <!--    <script>-->
    <!--        // 弹窗-->
    <!--        alert('hello world');-->
    <!--    </script>-->

    <!--    外部引入
    <script src="js/qj.js"/>记住千万不可以这样!
    script必须成对出现!!!
    -->
    <script src="js/qj.js"></script>

    <!--    不用显示定义type,也默认就是JavaScript-->
    <script type="text/javascript">
        
    </script>

</head>
<body>

</body>
</html>

qj.js

alert('hello world');

输出效果:

 

 

2、基本语法  

记得要先把idea调成ECMAScript 6+  

 

 网页功能(F12):

  • Elements:把网址复刻一遍
  • Console:调试js
  • Sources:要查看短点
  • Network:java jar包
  • Application:查看网站的应用

 

<script>
    // 1.定义变量 变量类型 变量名 = 变量值
    var num = 1;
    alert(num);
</script>

输出效果:

//2.条件判断
var score = 71;
if (score > 60 && score < 70) {
    alert("60~70")
} else if (score > 70 && score < 80) {
    alert("70~80")
} else {
    alert("other")
}

输出效果:

 

 

3、浏览器控制台使用

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!--javascript严格区分大小写-->
    <script>
        //1. 定义变量  (变量类型  变量名 = 变量值;)
        var score = 1;
        // alert(num);
        //2. 条件控制
        if (score>60 && score<70) {
            alert("60~70");
        } else if(score>70 && score<80) {
            alert("70~80");
        } else {
            alert("other");
        }
        //console.log(score); 在浏览器的控制台打印变量  相当于System.out.println();
    </script>
</head>
<body>

</body>
</html>

输出效果:

 

 

调试(打断点)  

 

4、数据类型快速浏览

  • 记住不能以数字作为变量名,如果用符号的话一般就是_和$
  • 清空控制台(Ctrl+L)

变量

  • var 变量名

Number

  • js不区分小数和整数,number
  • 123  //整数
  • 123.1  //浮点数
  • 1.123e3 //科学计数法
  • -99 //负数
  • NaN // not a number
  • Infinity  //表示无限大

字符串  

  • ‘abc’
  • "abc"

 

布尔值 

  • true
  • false

逻辑运算  

  • &&  //两个都是真,结果为真
  • ||  //一个为真,结果为真 
  • !   //真即假,假即真

比较运算符

  • = 赋值,不是比较运算符
  • == 等于(类型不一样,值一样,也会判断为true)
  • === 绝对等于(类型一样,值一样,结果true)(尽量使用这个!)

 

 

注意:

  • NaN===NaN,结果为false,这个与所有的数值都不相等,包括自己

  • 只能通过isNaN(NaN)来判断这个数是否是NaN

 

浮点数问题

  • console.log((1/3)===(1-2/3))
  • 结果为false

 

尽量避免使用浮点数进行运算,存在精度问题  

null和undefined  

  • null 空

  • undefined 未定义

数组  

  • java的数值必须是相同的类型的对象,js中不需要这样 
var arr = [1, 2, 3, 4, 5, 6, 'hello', null, true]
 new Array(1,2,3,'hello',null, true);

取数据下标,如果越界了,就会undefined

对象

  • 对象是大括号{},数组是中括号[]
  • 每个属性之间使用逗号隔开,最后一个不需要添加  
        //    Person person = new Person(1,2,3,4)
        'use strict'
        //全局变量
        let i = 1

        var person = {
            name: "shanmu",
            age: 3,
            tags: ['js', 'java', 'web']
        }

 

5、严格检查模式strict

  • 前提:idea需要设置支持es6的语法
  • use strict  严格校验模式,预防JavaScript的随意性导致产生的一些问题
  • 必须写在JavaScript的第一行
  • 局部变量建议都使用let去定义

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!--
    前提是需要idea支持es6语法
        'use strict';严格检查模式,预防JavaScript的随意性导致产生一些问题,必须写在第一行!!!!
        局部变量建议都去使用let去定义!
    -->
    <script>
        // //保证代码的可读性,尽量使用[]
        // var arr = [1, 2, 3, 4, 5, 6, 'hello', null, true]
        //
        // new Array(1,2,3,'hello',null, true);
        //    Person person = new Person(1,2,3,4)
        'use strict'
        //全局变量
        let i = 1
        var person = {
            name: "shanmu",
            age: 3,
            tags: ['js', 'java', 'web']
        }

    </script>
</head>
<body>

</body>
</html>

 

 错误:

 

正确: 

 

 

相关文章:

  • 树莓派PICO入门教程
  • 深入理解计算机系统——第五章 Optimizing Program Performance
  • 【JDBC实战】水果库存系统 [设计阶段]
  • 【前端之旅】JavaScript进阶笔记
  • JVM运行时参数
  • 【Android】-- 数据存储(二)(存储卡上读写文件、Application保存数据)
  • 消息队列|RabbitMQ入门概述
  • 并发(5)线程之间的协作
  • Vue 新手期练手出现问题记录与解决方案——Vue练手项目“小问题“,强迫症患者福音——持续更新ing
  • 公钥密码学中的简单数学基础
  • docker简洁版
  • 牛客网面试必刷TOP101之——判断某种二叉树以及寻找最近公共祖先节点
  • leetcode——最长回文子串——百日算法成就第五天5%
  • Java_Stream流式计算
  • 微雪树莓派PICO笔记——4. ADC(模拟数字转换器)
  • “寒冬”下的金三银四跳槽季来了,帮你客观分析一下局面
  • DOM的那些事
  • ES6 学习笔记(一)let,const和解构赋值
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • JAVA SE 6 GC调优笔记
  • Java小白进阶笔记(3)-初级面向对象
  • Median of Two Sorted Arrays
  • Spring Cloud(3) - 服务治理: Spring Cloud Eureka
  • vue从创建到完整的饿了么(18)购物车详细信息的展示与删除
  • 基于axios的vue插件,让http请求更简单
  • 什么软件可以提取视频中的音频制作成手机铃声
  • 使用 Node.js 的 nodemailer 模块发送邮件(支持 QQ、163 等、支持附件)
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 这几个编码小技巧将令你 PHP 代码更加简洁
  • 你学不懂C语言,是因为不懂编写C程序的7个步骤 ...
  • 曜石科技宣布获得千万级天使轮投资,全方面布局电竞产业链 ...
  • ​业务双活的数据切换思路设计(下)
  • $(document).ready(function(){}), $().ready(function(){})和$(function(){})三者区别
  • $refs 、$nextTic、动态组件、name的使用
  • (1)Map集合 (2)异常机制 (3)File类 (4)I/O流
  • (12)Linux 常见的三种进程状态
  • (9)YOLO-Pose:使用对象关键点相似性损失增强多人姿态估计的增强版YOLO
  • (第一天)包装对象、作用域、创建对象
  • (动态规划)5. 最长回文子串 java解决
  • (二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真
  • (附源码)计算机毕业设计SSM基于健身房管理系统
  • (机器学习-深度学习快速入门)第一章第一节:Python环境和数据分析
  • (未解决)jmeter报错之“请在微信客户端打开链接”
  • (原創) 如何刪除Windows Live Writer留在本機的文章? (Web) (Windows Live Writer)
  • (转)winform之ListView
  • .NET CLR基本术语
  • .NET Core SkiaSharp 替代 System.Drawing.Common 的一些用法
  • .NET Core 控制台程序读 appsettings.json 、注依赖、配日志、设 IOptions
  • .Net Web项目创建比较不错的参考文章
  • .net 开发怎么实现前后端分离_前后端分离:分离式开发和一体式发布
  • .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法)
  • .pyc文件是什么?
  • @GlobalLock注解作用与原理解析
  • [Arduino学习] ESP8266读取DHT11数字温湿度传感器数据
  • [BT]BUUCTF刷题第4天(3.22)