欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JavaScript入门0309

程序员文章站 2022-06-08 19:12:57
...

JavaScript

JavaScript的历史

1994年 , 网景 公司推出了第一款 真正意义上的 浏览器
1995年 , sun 公司推出了Java
1995年 , 网景公司 , sun公司 和网景公司的员工 布兰登 · 艾克 一起开发了 JavaScript

JavaScript是 : 轻量级 弱类型 脚本语言

JavaScript 的作用 : 实现页面的交互 : 用户操作的交互 , 数据的交互

JavaScript 的组成部分

  1. ECMAScript
    JavaScript的基本语法规范
  2. DOM(Document Object Model)
    文档对象模型 – 操作HTML,css
  3. BOM (Browser Object Model)
    浏览器对象模型 – 操作 浏览器

JavaScript的语法

 <style>
       .p1{
           color:blue;
       }
   </style>
   <link rel="stylesheet" href="./01_demo.css">

   <!--  -->
   <script src=""></script>
   <script>
       
   </script>
 <!--   
 		css的行内式,在标签内部直接定义css代码 
        JavaScript的行内式,也是在标签内部直接定义JavaScript代码
    -->
    <div style="color: red;" onclick="alert('我是div标签的弹窗')">我是div标签</div>


    <!--  
        css的内部式,在head标签中,定义style标签,然后通过选择器来定义标签样式
        JavaScript的内部式,在 head标签的最后,或者body标签的最后,来定义一个script标签,在标签内部来定义JavaScript代码
    -->
    <p class="p1" id="p1">我是p标签</p>


    <!-- JavaScript的外部式,是通过一个带有 src 属性的script标签,来导入外部的js文件 -->
    <script src="./02_demo.js"></script>


    <script>
        // 给p标签,添加JavaScript程序,要添加时,必须页面中已经有p标签才行
        p1.onclick = function(){
            window.alert('我是p标签,弹出的内容')
        }
    </script> 

    <!--  
        总结:
            JavaScript的语法与css语法类似,都分为3种
                1, 行内式
                   在 标签中 直接定义 JavaScript的 代码内容
                   这种语法不推荐使用
 				2, 内部式
                   在script标签中,直接定义JavaScript代码
                3, 外部式
                   在 外部 js 文件中 (也就是扩展名是 js的文件)
                   直接定义 JavaScript代码
                   通过一个 带有 src 属性的 script标签,来导入 

            一些解释和说明:
                1, 行内式,不推荐使用的 
                    书写不方便,而且不利于重复使用
                    一般做调试使用                
                2, 内部式和外部式,都是通过script标签来定义的
                   script标签,理论上,可以写在任意位置,但是一般放在 body内部的最下方
                   也就是所有的html标签的内容的最后
                   因为牵扯到 代码的执行顺序
                3, 定义了src的script,其标签内容中,定义的JavaScript程序,就不会执行了
                   给一个script标签,添加src属性,就变成导入外部式的script,
                   script标签内部的JavaScript代码就不会执行
 				  只会执行外部js文件中的内容
    -->

JavaScript入门0309JavaScript入门0309
JavaScript入门0309

超链接

超链接是一个特殊的标签,特殊在如果要执行JavaScript程序
超链接标签,href的属性值,必须定义为 JavaScript:; 才会执行
定义超链接的跳转,应该是在href属性中,来定义跳转页面的url地址
现在,在JavaScript中,要定义 href 属性 为 JavaScript:;
然后通过JavaScript的语法形式来定义,跳转页面
如果是在href中,定义跳转地址,那么很多JavaScript程序就无法执行了
通过 JavaScript来定义跳转, 可以实现JavaScript的一些功能

    <!-- 行内样式 -->
    <!-- 给标签添加id,是通过id属性值来操作标签 -->
    <a href="JavaScript:;" id="a1">百度</a>

    <!-- 内部式的语法形式 -->
    <script>
        a1.onclick = function(){
            // 之后要讲的超链接的跳转方式
            // 通过JavaScript来控制跳转地址等
            // 现在不用管,后面会详细讲
            var a = 3;
            if(a == 1){
                window.location.href = 'https://www.baidu.com';
            }else if(a == 2){
                window.location.href = 'https://www.sohu.com';
            }else if(a == 3){
                window.location.href = 'https://www.qq.com';
            } 
        }
    </script>

注释

在JavaScript中,注释分为两种
单行注释 和 多行注释

// 两个斜杠叫单行注释
在单行注释中,换行,就结束注释效果

/* 多行注释
多行注释内,可以换行,会继续执行注释效果*/
快捷键还是 ctrl + /

变量的定义

官方定义: 存储在内存之中的,带有名称的,数据信息,其中存储的数据,在执行过程中,是可以改变的
实际上:就是容器 , 存储数据的容器。
所有的计算机程序,数据都会存储在变量中,通过操作变量,来操作数据

定义变量的语法形式

var name = “jack”;
var ——声明变量的关键字;
name——定义的变量名;
等于号(=)——JS里面的一个赋值符号(把右边的给左边);
“jack”——给这个变量赋的一个值。
JavaScript入门0309

变量名称的命名规范

(1),规则 必须遵守的
变量名称的内容,只能是数字,字母(大小写都可以),下划线 _ ,美元符号 $
不能以数字开头 一般是以字母或者下划线开头
严格区分大小写
不要使用保留词和关键词
(2),规范 建议遵守的 — 程序员的潜规则
不要使用中文
见名知意 – 看见变量名称,就知道存储的是什么数据
驼峰命名法 – 多个单词组成的变量名称,每个单词的首字符大写
UserName UserPwd
小驼峰 – 第二个单词开始,首字符大写
userName userPwd

    // 英文太差的,查有道词典
    // 再不行,偶尔可以使用拼音
    // 但是绝对不能使用 拼音缩写
	var a1 = 100;
    // 不能以数字开头
    // var 1a = 100; 会报错
    // 严格区分名称中的大小英文字母
    var A1 = 200;    // 和 a1 小写的a1 是两个变量
	 // 不要使用保留词和关键词
    // 例如,不能定义变量名称 叫 var 
		 // var var = 300;

JS变量的关键字

关键字
break do instanceof typeof
case else new var
catch finally return void
continue for switch while
debugger* function this with
default if throw delete
in try let* yield*

JS变量的保留字

保留字
abstract enum int short
boolean export long super
byte extends long super
char final native synchronized(同步)
class float package throws
const goto private transient
debugger implenments protected volatile
double import public
尽量不要使用
arguments Error Math String
Array eval NAN super
Boolean EvalError Number synchronized
Date Function Object throws
decodeURI Infinity parseFloat transient
decodeURIComponent isFinite pareInt volatile
encodeURI isNaN RangeError regExp
encodeURIComponent JSON

注:

  1. 只要在JS中已有功能的单词都不要使用在单词前加前缀。
  2. 变量的声明语法,可以描述成:我要将“等号”右边的内容给到“等号”左边的变量名。
  3. 不适用var也可以声明变量,但是不推荐使用
  4. 可以只声明,暂时不赋值
  5. 可以同时声明多个变量,但不推荐使用。

JavaScript数据的分类

JavaScript中,对于变量可以存储的数据,有分类
基本数据类型 / 标准数据类型

布尔类型(Boolean) :false.true
数值类型 (Number):0-9,NaN,…
字符串类型 (String):所有使用引号包裹的数据。
Undefined: undefined , 表示没有值或未赋值。
Null:null,表示为空,是一种状态。

引用数据类型 / 复杂数据类型 / 地址数据类型

数组(Array) , 对象(Object) , 函数(Function)

数据类型之布尔类型

  1. 在HTML中,有布尔属性
    属性值就是属性本身
<input type="checkbox" checked>

html5中,布尔属性,不推荐写属性值
2. 在计算机语言中,布尔值,表示 真 / 假 这样的两个数值
表示 真 / 正确 的数值是 true
表示 假 / 错误 的数值是 false
布尔值,往往是 比较 或者 判断的结果
3. 在 JavaScript中,表示布尔类型的英文 是 Boolean / bool
var a = 100 ;
控制台 console 中 查看/输出 a变量中存储的数值 --> 100
console.log(a);
4. = 赋值符号, 是将右侧的内容,赋值给左侧变量存储
右侧的内容 是 4>3 的一个比较判断 , 判断的结果 是 真 / 正确
在JavaScript中正确的结果,使用 true 来表示
变量b 中存储的就是 true
var b = 4 > 3 ;
console.log(b);
在变量c中 存储的是 4<3 的结果,是 假 / 错误
在JavaScript中错误的结果,使用false 来表示
var c = 4 < 3 ;
console.log©;
可以对变量直接进行赋值,赋值的内容是 true 或者 false
但是要注意,这里的true和fasle必须小写
如果大写就会报错,因为就不是布尔值了
直接赋值布尔值
var d = true;
var e = false;
console.log(d,e);
5. true , false 作为布尔值,可以直接使用
console.log(true , false);
布尔类型 / 布尔值
表示比较判断的结果
true表示真/正确,false表示假/错误
在使用时,一定要小写

数据类型之字符串类型

字符串类型:
所谓的字符串类型,就是由字符,数字,符号等,组成的一串数据类型
JavaScript中 使用 String / str 表示字符串类型

    // 字符串类型 的数据,必须使用 单引号 或者 双引号 来已经包裹
    // 在JavaScript中,单引号,双引号,没有区别,用那个都行
    // 但是必须成对使用
    // 必须是英文格式的符号 
    // var a = 北京 ;   语法错误,会报错 
    var a = "北京" ;  
    console.log(a);

特殊情况1: 如果一个数字,也被 引号包裹,那么这个数字,也是字符串类型
var b = 123; // 变量b中存储的是 数值 123
var c = “123”; // 变量c中存储的是 字符串 123
console.log(b,c);
特殊情况2: 引号的嵌套 : 双引号中只能嵌套,单引号,不能嵌套双引号
// 单引号中只能嵌套,双引号,不能嵌套单引号
// 如果是多层嵌套,我们之后会介绍模板字符串
特殊情况3: 字符串的拼接
// 将两个字符串,拼接为一个字符串,称为字符串的拼接
// 在JavaScript中,字符串的拼接,使用 + 加号来表示
// 将两个字符串的内容,拼接为一个字符串,赋值给变量存储
// 可以多个字符串,多次拼接
var str3 = str1 + str2 + ‘
’ + str1 + str2 ;
console.log(str3);
// 在页面中输出要执行换行效果,拼接上 换行标签即可
// 换行标签页必须是字符串形式
// console.log() 控制台输出,不支持 标签效果
document.write( str3 );

数据类型之数值类型整数

数值类型
JavaScript中,数值类型包括:
整数 , 小数 , NaN 3种数值形式
整数: integer / int
在计算机程序中,常用的整数类型有

  1. 二进制 : 0 , 1

  2. 八进制 : 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7

  3. 十进制 : 0 - 9

  4. 十六进制 : 0 - 9 a - f

     // 关于进制,我们了解即可,不用学转化计算方式
     // 如果非要计算,可以使用计算器
     // 关键是 各种进制的数值,在JavaScript中如何存储
     // 这里特指的是整数
     // 如果,变量中要存储的整数是 二进制数值
     // 需要在二进制数值前 添加 0B 或者 0b 零b 或者 零B
     // 存储时,是按照二进制数值存储,输出时,默认都是按照十进制数值输出
     // 如果需要按照原始进制数值输出
     // 变量名称.toString(进制)  S必须大写
     // 将数值转化为字符串形式输出
    
     var a = 0b11111001;
     console.log(a);                     // 默认将存储数值,转化为十进制输出
     console.log( a.toString(2) );       // 默认将存储数值,转化为十进制输出
    
     // 八进制 在存储数值之前添加0
     // 按照八进制输出, toString(),小括号中写8
     var b = 0371;
     console.log(b);
     console.log( b.toString(8) );
    
     // 十进制 正常输入就可以
     var c = 248;
    
     // 十六进制 输入数值前,加 0x 零x 或者 0X 零X
     var d = 0xf9;
     
     console.log(d)
     console.log( d.toString(16) );
    

数据类型之浮点数

 // 浮点数 , 也就是小数  float 
有效数字 / 有效数值
    // 在数学中,小数的小数位数,可以是无穷位
    // 在JavaScript中,对于浮点数的总位数有规定
    // 一个浮点数,有效数字/有效数值,最多 17 位
    // 所谓的有效数字,值得是,左起,非零的数值

    // 整数部分,小数部分,一共是17位
    // 直接截取有效部分,而不是四舍五入

    // console.log(12345.67890123456789012345);
科学计数法
    // 记录表示数值的一种语法形式
    // 数值 e 数值 
    // 2 e 3   2 乘以 10的3次方 2 * (10*10*10)
    // 2 e -3  2 除以 10的3次方 2 / (10*10*10)

    // 关键: 使用科学技术法表示的数值,即时是一个整数,计算机中也是按照浮点数来分类的
    // 2e3表示的是 2000 ,是一个整数,但是计算机程序,仍然会将这个整数,当做浮点数来处理

    // console.log( 2e3 );    // 2000
    // console.log( 2e-3 );   // 0.002
浮点数的误差 — 浮点数的 精度丢失 / 精度溢出
    // 在计算机程序中,浮点数的存储,存储内容,不是准确值,而是近似值
    // 在计算机中,就会造成浮点数执行时,计算的误差,也称作精度丢失/精度溢出
    // 但是这种情况不是任何时候都会体现出来
    // 这样的错误,在特殊情况下会体现出来
    // 解决方案,是用高精度浮点来执行计算 float类型 转 double 类型
    // console.log( 0.1*0.1 );
    // console.log( 0.1*0.2 );
    // console.log( 0.1*0.3 );
    // console.log( 0.1*0.4 );
    // console.log( 0.1*0.5 );
    // console.log( 0.1*0.6 );
    // console.log( 0.1*0.7 );
    // console.log( 0.1*0.8 );
    // console.log( 0.1*0.9 );
	// 经典面试题:
    // 写出以下 程序的 执行结果
    // == 两个等号 表示 判断 两侧的内容是否相等
  console.log( 0.1 + 0.2    == 0.3 )
    console.log( 0.2 + 0.2 == 0.4 )
    console.log( 0.3 + 0.3 == 0.6 )
    // 这是错误的语法形式,我在实际项目中,根本不会这么写
    // 浮点数因为存储方式的问题,直接执行运算或者比较,会造成精度溢出或者精度丢失的现象
    // 造成执行的误差
    // 我会将浮点数,转化为 高精度浮点数 , 在进行运算,会避免这样的问题发生

数据类型之Undefined和null

undefined和null :是JavaScript中的两种数据类型
undefined 表示没有数值 — 应该有数值,但是现在没有数值
null 表示数值为空 — 表示有数值,但是数值是"空"

    // undefined
    //别人叫我给倒杯水,但是我给她拿了一个 空杯子
    // 此时杯子中,应该有水,但是现在没有水,就叫undefined
	// null 
    //别人让我给她拿一个空的平底锅,
    // 这个锅 本身 就应该是一个空的 锅, 就是 null
    // 可以直接给变量,赋值 undefined 和 null
    // 注意,也是必须小写
    // 定义int1 但是没有赋值数值
    var int1 ;
    // 输出时,int 应该有数值,但是现在没有数值
    // 输出的结果就是 undefined
    console.log(int1);  
    // 定义一个变量,并且赋值null
    var int2 = null;
    console.log( int2 );
    var int3 = undefined;
    console.log( int3 );

总结:
true , false , undefined , null , NaN
在JavaScript中,表示的是一种数值
赋值时,必须严格遵守 大小写规范
并且,不能带 引号 , 如果有引号,就是字符串,就不是原有的数值了

相关标签: 笔记 学习总结