软件设计之JavaScript(1)

软件设计之JavaScript(1)

【狂神说Java】JavaScript最新教程通俗易懂

学习内容:

软件开发技能点参照:软件开发,小白变大佬,这套学习路线让你少走弯路是认真的,欢迎讨论
软件开发技能点顺序参照:Java学习完整路线,强烈建议收藏转发

  1. 什么是JavaScript
  2. 引入JS
  3. 数据类型
  4. 函数
  5. 变量作用域
  6. 方法

1、什么是JavaScript

JavaScript是一门脚本语言
一个合格的后端人员,必须要精通JavaScript
ECMAScript可以理解为是JavaScript的一个标准

2、引入JS

在这里插入图片描述

Script内语句

var num = 1;设置变量时出现warning:'var' used instead of 'let' or 'const'
解决方法

  <script >
      //1. 定义变量 变量类型 变量名 = 变量值
      var num1 = 1;
      var num2 = 2;
      //条件控制
      if (num1>num2){
          alert("true");
      }else{
          alert("false");
      }
  </script>

严格审查模式

前提:IDEA需要设置支持ES6语法
严格审查模式预防JS的随意性导致产生一些问题
局部变量建议使用let定义

 <script >
      `use strict`;
  </script>

console.log(var)

在浏览器控制台打印变量
在这里插入图片描述
在这里插入图片描述

3、数据类型

number

JS不区分小数和整数,Number
在这里插入图片描述

字符串

正常字符串使用单引号或双引号
多行字符串编写用这个包裹 ``(TAB键上面的)
字符串仍不可变

模版字符串

此处的是TAB上的``

  <script >
      `use strict`;
      let name = "小明"
      let msg = `你好,${name}`
      console.log(msg)
  </script>
substring

从第一个字符串截取到最后一个字符串 X.substring(1)
从第一个字符串截取到第三个字符串 X.substring(1,3)

布尔值

true,false

逻辑运算

&& 与
|| 或
! 非

比较运算符

=
== 等于 (类型不一样,值一样,也会判断为true)
=== 绝对等于(类型一样,值一样,结果true)
注意NaN与所有的数值都不相等,包括自己 (NaN===NaN返回false)
可以通过isNanN()方法返回值判断是否为NaN,true为是;false为否

浮点数问题

第一行代码结果是false

在这里插入图片描述

数组

假如给数组的length属性赋值,数组大小会发生变化。赋值过小,元素会丢失
indexOf通过元素获取下标索引
slice() 截取Array一部分,返回一个新数组
push:从尾部添加
pop:从尾部弹出

在这里插入图片描述

对象

每个属性用逗号隔开,键值对描述属性 XXXX: xxxx
取对象用 Person.age
对象赋值直接赋值 person.name = “xxx”
使用一个不存在的对象属性不会报错–>输出undefined
JS中所有的键都是字符串,值是任意对象

  <script >
        var Person = {
            name:"中国",
            age:3,
            tags:["js","java"]
        }
  </script>
动态删减/添加属性

通过delete删除对象的属性
直接给新的属性添加值就可以实现动态添加

判断属性值是否在对象中

xxx in xxx 返回布尔类型

'age' in person
全局对象window

默认所有的全局变量,都会自动绑定在window对象下

<script>
var x = 'xxx';
alert(x);
alert(window.x)//等价
</script>

在这里插入图片描述

Map与Set

Map:键值对集合数据结构
Set:无序不重复集合

Map

在这里插入图片描述

Set

在这里插入图片描述

iterator循环遍历
  <script >
      `use strict`;
        let map = new Map([["tom",1],["jack",2]]);
        for (let x of map){
            console.log(x)
        }

        let set = new Set([5,6,7]);
      for (let x of set){
          console.log(x)
      }
  </script>

4、函数

定义函数

如果没有执行return,函数执行完也会返回结果,结果为:undefined
在JavaScript中,函数是一等公民,这意味着函数可以被赋值给变量、作为参数传递给其他函数、或作为其他函数的返回值。此外,函数在JavaScript中也充当构造函数的角色,用于创建对象。

  <script >
      `use strict`;
      // 方法一
        function abs(x){
            if (x>=0){
                return x;
            }else{
                return -x;
            }
        }
        let abs1 = function (x){
            if (x>=0){
                return x;
            }else{
                return -x;
            }
        }
  </script>

调用函数

参数问题:JS可以传任意个参数,也可以不传递参数

不存在参数,如何规避

手动抛出异常来判断

  <script >
      `use strict`;
        let abs1 = function (x){
            if (typeof x !=='number'){
                throw 'Not a Number'
            }
            if (x>=0){
                return x;
            }else{
                return -x;
            }
        }
  </script>

在这里插入图片描述

参数存在多个

arguments是一个JS的关键字,代表传递进来的所有参数,是一个数组
(ES6引入)rest获取除了已定义的参数之外的所有参数

  <script >
      `use strict`;
        function aaa(a,b,...rest) {
            console.log("a=>"+a);
            console.log("b=>"+b);
            console.log(rest);
        }
  </script>

在这里插入图片描述

5、变量的作用域

在JS中,var定义的变量是有作用域的
var变量在函数体中声明,则在函数体外不可用
在这里插入图片描述
如果两个函数使用相同变量名,只要在函数内部,则不冲突

  <script >
      `use strict`;
        function aaa(x) {
            var x = 1;
        }
        function bbb(x) {
            var x = 'A';
        }
  </script>

内部函数可以访问外部函数的成员,反之不行
JS中函数查找变量从自身函数开始,由内向外,当内部没有该变量时,会去外部查找

  <script >
      `use strict`;
        function aaa() {
            var x = 1;
            function bbb() {
                var x = 'A';
                console.log(x);
            }
            console.log(x);//1
            var z = y + 1 //ReferenceError: y is not defined
            bbb();//A
        }
  </script>

局部作用域let

ES6 let关键字,解决局部作用域冲突问题

  <script >
      `use strict`;
        function aaa() {
            for (var i = 0; i < 100; i++) {
                console.log(i);
            }
            console.log(i)//100,正常情况是不能输出i的
        }
  </script>

提升变量作用域

规范:所有变量的定义都放在函数的头部,不能随用随定义,便于代码维护。

在这里插入图片描述

全局函数

在这里插入图片描述

6、方法

对象只有属性方法
方法的定义:把函数放在对象里
调用属性: func.name
调用方法:带括号 func.age()

调用方法1
  <script >
      `use strict`;
        var func = {
            name:'计算年龄',
            birth:1999,
            //方法
            age:function () {
                var now = new Date().getFullYear();
                return now - this.birth;
            }
        }
  </script>
调用方法2

其中 func.age()是正确使用
直接getAge()会报错NaN,因为this此时代表的是window,window没有birth属性
this的指向是可以通过apply进行改变的
getAge.apply(func,[]) //此时this指向对象func,getAge方法参数为空所以是[]

  <script >
      `use strict`;
      function getAge() {
          var now = new Date().getFullYear();
          return now - this.birth;
      }
        var func = {
            name:'计算年龄',
            birth:1999,
            //方法
            age:getAge()
        }
  </script>
JavaScript软件设计说明是一份文档,用于指导开发人员在设计和开发JavaScript软件项目时的步骤和原则。本文将简要介绍JavaScript软件设计说明的内容和目的。 首先,JavaScript软件设计说明应包括项目的背景和目的,以提供背景和概述项目的相关信息。接下来,应该列出项目的需求和功能,明确项目的具体目标和要求。 在设计说明中,应该详细描述软件的架构和组件。软件的架构应该清晰明了,包括各个模块的关系、数据流和交互方式。组件设计应该考虑到代码的可重用性和可维护性,尽量避免冗余代码,提高代码的效率和质量。 此外,设计说明还应涉及到具体的开发方法和规范。如何组织代码、编写注释、进行版本控制等等都应该在设计说明中进行规定。这些规范可以提高代码的一致性,便于团队协作和后期维护。 最后,设计说明还可以包括测试计划和质量保证措施。测试计划应该明确测试的范围和方法,并设计相应的测试用例。质量保证措施可以包括代码评审、性能优化和安全性检查等,以确保软件达到预期的质量标准。 总之,JavaScript软件设计说明是一份重要的文档,有助于开发人员在设计和开发JavaScript软件项目时有条不紊地进行工作。它将项目的需求和功能明确化,并提供了设计和开发的指导原则,以确保软件的质量和可维护性。同时,它还为团队协作和后续的版本维护提供了便利。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值