day_06 js

CubeMX实战:ETH+LWIP+FreeRTOS网络工程从零搭建与AC6编译优化 本文手把手教你使用STM32CubeMX从零搭建集成以太网(ETH)、LWIP协议栈和FreeRTOS的嵌入式网络工程。文章详细解析了外设配置、协议栈调优、任务规划等关键步骤,并重点分享了如何解决ARM Compiler 6(AC6)的兼容性问题,实现编译速度与稳定性的双重提升,助你快速构建稳定的网络应用原型。 阅读详情

数组

  1. 、为什么要学习数组

之前学习的数据类型,只能存储一个值(比如:Number/String。

如果我们想存储班级中所有学生的姓名,此时该如何存储?

  1. 、数组的定义

所谓数组,就是将多个元素(通常是同一类型)按一定顺序排列放到一个集合中,那么这个集合我们就称之为数组。

数组是一个有序的列表,可以在数组中存放任意的数据,并且数组的长度可以动态的调整。

  1. 、通过数组字面量创建数组

// 创建一个空数组
var arr1 = [];
// 创建一个包含3个数值的数组,多个数组项以逗号隔开
var arr2 = [1, 3, 4];
// 创建一个包含2个字符串的数组
var arr3 = ['a', 'c'];
​
// 可以通过数组的length属性获取数组的长度
console.log(arr3.length);
// 可以设置length属性改变数组中元素的个数
arr3.length = 0;

  1. 、获取数组元素

数组的取值

[0] 是数组中的第一个元素。[1] 是第二个。数组索引从 0 开始。

// 格式:数组名[下标]   下标又称索引
// 功能:获取数组对应下标的那个值,如果下标不存在,则返回undefined。
var arr = ['red', 'green', 'blue'];
arr[0]; // red
arr[2]; // blue
arr[3]; // 这个数组的最大下标为2,因此返回undefined

  1. 、遍历数组

遍历:遍及所有,对数组的每一个元素都访问一次就叫遍历。

数组遍历的基本语法:

for(var i = 0; i < arr.length; i++) {
    // 数组遍历的固定结构
}

  1. 、数组中新增元素

数组的赋值

// 格式:数组名[下标/索引] = 值;
// 如果下标有对应的值,会把原来的值覆盖,如果下标不存在,会给数组新增一个元素。
var arr = ["red", "green", "blue"];
// 把red替换成了yellow
arr[0] = "yellow";
// 给数组新增加了一个pink的值
arr[3] = "pink";

数组的push方法

// 格式:数组名.push()
// 如果下标有对应的值,会把原来的值覆盖,如果下标不存在,会给数组新增一个元素。
var arr = ["red", "green", "blue"];
arr.push(“pink”);

  1. 数组案例

(1)、案例

演示示例:求一组数中的所有数的和和平均值

求一组数中的所有数的和和平均值

  var sum1 = 0;

  for (var i = 0; i < arrNum.length; i++) {

    sum1 += arrNum[i];

  }

  console.log(sum1);//338

  // 平均值

  var abg = sum1 / arrNum.length;

  console.log(abg.toFixed(2));

演示示例:求一组数中的最大值和最小值,以及所在位置

求一组数中的最大值和最小值,以及所在位置

  var numMax = arrNum[0];//假设第一元素是最大值

  var numMin = arrNum[0];//假设第一元素是最小值

  var indexMax = 0;

  var indexMin = 0;

  for (var i = 0; i < arrNum.length; i++) {

    if (arrNum[i] >= numMax) {

      numMax = arrNum[i];

      // console.log(i);

      indexMax = i + 1;

    }

    if (arrNum[i] <= numMin) {

      console.log("啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊")

      numMin = arrNum[i];

      indexMin = i + 1;

    }

  }

  console.log("最大值是:" + numMax + ",是第" + indexMax + "个元素!");

  console.log("最小值是:" + numMin + ",是第" + indexMin + "个元素!");

演示示例:将字符串数组用|或其他符号分割,返回一个字符串

将字符串数组用|或其他符号分割,返回一个字符串

  var str = "";

  var arrStr = ["我", "们", "是", "好", "孩", "子"];

  console.log(arrStr);

  for (var i = 0; i < arrStr.length; i++) {

    console.log(arrStr[i]);

    // str = str + arrStr[i] + "|";

    if (i < arrStr.length - 1) {

      str = str + arrStr[i] + "|";

    } else {

      str = str + arrStr[i];

    }

  }

  console.log(str);

  console.log(typeof str);

演示示例:要求将数组中的0项去掉,将不为0的值存入一个新的数组,生成新                     的数组

要求将数组中的0项去掉,将不为0的值存入一个新的数组,生成新的数组

  var newArr1 = [];

  for (var i = 0; i < arrNum.length; i++) {

    if (i != 0) {

      // console.log(arrNum[i]);

      newArr1.push(arrNum[i]);

    }

  }

  console.log(newArr1);

演示示例:翻转数组

  // 5、翻转数组

  var newArr2 = [];

  for (var i = arrNum.length - 1; i >= 0; i--) {

    console.log(arrNum[i]);

    newArr2.push(arrNum[i]);

  }

  console.log(newArr2);

演示示例:获取二维数组的长度最大的子数组的序号

3. 函数

(1)、为什么要有函数

如果要在多个地方求1-100之间所有数的和,应该怎么做?

(2)、什么是函数

把一段相对独立的具有特定功能的代码块封装起来,形成一个独立实体,就是函数。

起个名字(函数名),在后续开发中可以反复调用。

函数的作用就是封装一段代码,将来可以重复使用。

(3)、函数的定义

函数声明

function 函数名(){
  // 函数体
}

函数表达式

var fn = function() {
  // 函数体
}

函数定义好后,函数体并不会执行,只要当函数被调用的时候才会执行。函数一般都用来干一件事情,需用使用动词+名词,表示做一件事情tellStory sayHello等。

(4)、函数的调用

调用函数的语法

函数名();

特点:函数体只有在调用的时候才会执行,调用需要()进行调用。可以调用多次(重复使用)

代码示例

// 声明函数
function sayHi() {
  console.log("吃了没?");
}
// 调用函数
sayHi();
​
// 求1-100之间所有数的和
function getSum() {
  var sum = 0;
  for (var  i = 0; i < 100; i++) {
    sum += i;
  }
  console.log(sum);
}
// 调用
getSum();

(5)、函数的参数

为什么要有参数

function getSum() {
  var sum = 0;
  for (var i = 1; i <= 100; i++) {
    sum += i;
  }
  console.log();
}
// 虽然上面代码可以重复调用,但是只能计算1-100之间的值
// 如果想要计算n-m之间所有数的和,应该怎么办呢?

语法:

// 函数内部是一个封闭的环境,可以通过参数的方式,把外部的值传递给函数内部
// 带参数的函数声明
function 函数名(形参1, 形参2, 形参...){
  // 函数体
}
// 带参数的函数调用
函数名(实参1, 实参2, 实参3);

形参和实参

1. 形式参数:在声明一个函数的时候,为了函数的功能更加灵活,有些值是固定不了的,对于这些固定不了的值。我们可以给函数设置参数。这个参数没有具体的值,仅仅起到一个占位置的作用,我们通常称之为形式参数,也叫形参。

2. 实际参数:如果函数在声明时,设置了形参,那么在函数调用的时候就需要传入对应的参数,我们把传入的参数叫做实际参数,也叫实参。

var x = 5, y = 6;
fn(x,y);
function fn(a, b) {
  console.log(a + b);
}
//x,y实参,有具体的值。函数执行的时候会把x,y复制一份给函数内部的a和b,函数内部的值是复制的新值,无法修改外部的x,y

  1. 函数案例

(1)、函数案例

演示示例:求1-n之间所有数的和

演示示例:求n-m之间所有数额和

function getSum(n,m){

      var sum = 0;

      for (var i = n;i <= m;i++){

          sum += i;

      }

      console.log(sum);

    }

    getSum(1,100);//1-100

    getSum(50,100);//50-100

    getSum(2,100);//2 -100

演示示例:圆的面积

function getArea(r){

      // 数学对象:Math

      console.log(Math);

      var area = Math.PI * r * r;

      console.log(area.toFixed(2));

    }

    getArea(10);

演示示例:求2个数中的最大值

 function getMaxNum(m,n){

      if (m > n){

        console.log("最大值:"+ m);

      }else if (m < n) {

        console.log("最大值:"+ n);

      }else {

        console.log( m +"与"+ n + "相等");

      }

    }

    getMaxNum(150,150);

    getMaxNum(0,12);

演示示例:求3个数中的最大值

课堂练习:判断一个数是否是素数

5.函数的返回值

(1)、什么是返回值

当函数执行完的时候,并不是所有时候都要把结果打印。我们期望函数给我一些反馈(比如计算的结果返回进行后续的运算),这个时候可以让函数返回一些东西,也就是返回值。函数通过return返回一个返回值。

返回值语法:

//声明一个带返回值的函数
function 函数名(形参1, 形参2, 形参...){
  //函数体
  return 返回值;
}
​//可以通过变量来接收这个返回值
var 变量 = 函数名(实参1, 实参2, 实参3);

函数的调用结果就是返回值,因此我们可以直接对函数调用结果进行操作。

(2)、返回值总结

1、如果函数没有显示的使用 return语句 ,那么函数有默认的返回值:undefined

2、如果函数使用 return语句,那么跟再return后面的值,就成了函数的返回值

3、如果函数使用 return语句,但是return后面没有任何值,那么函数的返回值也是:undefined

4、函数使用return语句后,这个函数会在执行完 return 语句之后停止并立即退出,也就是说return后面的所有其他代码都不会再执行。

推荐的做法是要么让函数始终都返回一个值,要么永远都不要返回值。

演示示例:求阶乘

 function getJie(n){

      var jie = 1;

      if(n==0){

        return 1;

      }

      for(var i=1;i<=n;i++){

        jie *= i;

      }

      return jie;

    }

    var jiecheng =getJie(7);

    console.log(jiecheng);

演示示例:求一组数中的最大值

演示示例:求一组数中的最小值

函数其他

  1. 、函数的命名

规则

1.由字母、数字、下划线、$符号组成,不能以数字开头
           2.不能是关键字和保留字,例如:for,while,this, name
           3.区分大小写
       规范
           1.函数名必须有意义
           2.遵守驼峰命名法
           3.建议不要用$作为函数名

  1. 、函数的覆盖问题

如果两个函数都是函数的声明,且函数名相同,那么后边的函数会覆盖前边的

function fn1() {

    console.log("函数声明");

  }

  function fn1() {

    console.log("我是第二个fn1");

  }

fn1();//我是第二个fn1

如果两个函数都是函数表达式,且函数名相同,函数的调用会调用最近的一个

  var fn2 = function () {

    console.log("第一个函数表达式fn2");

  } 

  fn2();//第一个函数表达式fn2

var fn2 = function () {

    console.log("我是第二个fn2表达式");

  }

  1. 、函数的内置对象

JavaScript中,arguments对象是比较特别的一个对象,实际上是当前函数的一个内置属性。也就是说所有函数都内置了一个arguments对象,arguments对象中存储了传递的所有的实参。arguments是一个伪数组,因此也可以进行遍历。

arguments数组中前几个元素是函数的参数

callee属性:函数的本身

callee.name:函数的名字

length属性:实参的个数

callee.length:形参的个数

  1. 、匿名函数

匿名函数:没有名字的函数

匿名函数如何使用?

匿名函数不能通过直接调用来执行,因此可以通过匿名函数的自调用的方式来执行

(function () {
       alert(123);
  })();

  1. 、函数是一种数据类型

函数是引用数据类型

<script>

//1.可以typeof一下

function run(){

}

console.log(typeof run)//function

  1. 、函数作为参数

因为函数也是一种类型,可以把函数作为参数传入

function fnNum1(x) {

    console.log(x);

    x();

  }

 fnNum1(function () { console.log("函数作为参数传入") });

因为函数是一种类型,可以把函数作为参数反出

 function fnNum2(x) {

    return x

  }

  // var num1 = fnNum2(120);

  var num1 = fnNum2(function () { console.log("函数作为参数反出") });

  console.log(num1);

  num1();

演示示例: 函数其他

课堂练习:利用arguments书写函数获取累加值

2. 预解析

JavaScript引擎在对JavaScript代码进行解释执行之前,会对JavaScript代码进行预解析,在预解析阶段,会将以关键字var和function开头的语句块提前进行处理。

关键问题是怎么处理呢?

当变量和函数的声明处在作用域比较靠后的位置的时候,变量和函数的声明会被提升到作用域的开头。

(1)、函数提升

func();

function func(){

     alert("Funciton has been called");

}

由于JavaScript的预解析机制,上面的代码就等效于:

function func(){

     alert("Funciton has been called");

}

func()

(2)、变量提升

看完函数声明的提升,再来看一个变量声明提升的例子

alert(a);

var a = 1;

由于JavaScript的预解析机制,上面这段代码,alert出来的值是undefined,如果没有预解析,代码应该会直接报错a is not defined,而不是输出值,不是说要提前的吗?那不是应该alert出来1,为什么是undefined?

所以我们说的提升,是声明的提升。

那么再回过头看,上面的代码就等效于

var a; //这里是声明

alert(a);//变量声明之后并未有初始化和赋值操作,所以这里是 undefined

a = 1

所以变量的提升只是声明的提升

(3)、函数同名

通过上一小节的内容,我们对变量、函数声明提升已经有了一个最基本的理解。那么接下来,我们就来分析一些略复杂的情况。

观察下面这段代码

func1();

function func1(){

     console.log('This is func1');

}

func1();

function func1(){

     console.log('This is last func1');

}

输出结果为

This is last func1

This is last func1

原因分析:由于预解析机制,func1的声明会被提升,提升之后的代码为

function func1(){

console.log('This is last func1');

}

func1();

func1();

同名的函数,后面的会覆盖前面的,所以两次输出结果都是This is last func1。

(4)、变量和函数同名

alert(foo);

function foo(){}

var foo = 2;

当出现变量声明和函数同名的时候,只会对函数声明进行提升,变量会被忽略。所以上面的代码的输出结果为

function foo(){}

我们还是来把预解析之后的代码展现出来:

function foo(){};

alert(foo);

foo = 2;

再来看一种

var num = 1;

function num () {

alert( num );

}

num();

代码执行结果为:

Uncaught TypeError: num is not a function

按照常规的书写顺序,同名的函数与变量,变量会覆盖函数

直接上预解析后的代码:

function num(){

alert(num);

}

var num = 1;

num();

(5)、预解析是分作用域的

提升原则是提升到变量运行的环境(作用域)中去。

function showMsg()

{

var msg = 'This is message';

}

alert(msg); // msg未定义

还是直接把预解析之后的代码写出来:

function showMsg()

{

var msg;

msg = 'This is message';

}

alert(msg); // msg未定义

(6)、函数表达式不会提升

func();

var func = function(){

     alert("我被提升了");

};

这里会直接报错,func is not a function,原因就是函数表达式,并不会被提升。只是简单地当做变量声明进行了处理,如下

var func;

func();

func = function(){

     alert("我被提升了");

}

演示示例:预解析

课堂练习:预解析练习题

3.作用域

(1)、全局作用域

  直接编写在 script 标签之中的JS代码,都是全局作用域;

  或者是一个单独的 JS 文件中的。

  全局作用域在页面打开时创建,页面关闭时销毁;

  在全局作用域中有一个全局对象 window(代表的是一个浏览器的窗口,由浏览器创建),可以直接使用。

所有创建的变量都会作为 window 对象的属性保存。

所有创建的函数都会作为 window 对象的方法保存。

(2)、局部作用域(函数作用域):

  在函数内部就是局部作用域,这个代码的名字只在函数的内部起作用

  调用函数时创建函数作用域,函数执行完毕之后,函数作用域销毁;

每调用一次函数就会创建一个新的函数作用域,它们之间是相互独立的。

将这样的所有的作用域列出来,可以有一个结构: 函数内指向函数外的链式结构。就称作作用域链。

例如:

function f1() {

function f2() {

}

}

var num = 456;

function f3() {

function f4() {

}

}

(3)、隐式全局变量

声明变量使用`var`, 如果不使用`var`声明的变量就是全局变量( 禁用 )

因为在任何代码结构中都可以使用该语法. 那么再代码维护的时候会有问题. 所以除非特殊原因不要这么用.

下面的代码的错误

function foo () {

    var i1 = 1 // 局部

    i2 = 2, // 全局

    i3 = 3; // 全局

}


演示示例: 作用域

4. 对象

(1)、为什么要有对象

function printPerson(name, age, sex....) {
}
//
函数的参数如果特别多的话,可以使用对象简化
function printPerson(person) {
  console.log(person.name);
  ……
}

(2)、什么是对象

现实生活中:万物皆对象,对象是一个具体的事物,一个具体的事物就会有行为和特征。

举例: 一辆车、一部手机、一台电脑、一张桌子

车是一类事物,门口停的那辆车才是对象。特征:红色、四个轮子,行为:驾驶、刹车

(3)、JavaScript中的对象

JavaScript中的对象其实就是生活中对象的一个抽象。

JavaScript的对象是无序属性的集合。

其属性可以包含基本值、对象或函数。对象就是一组没有顺序的值。我们可以把JavaScript中的对象想象成键值对,其中值可以是数据和函数。

                            Class=”d1”

                            Key = value

对象的行为和特征

       特征---属性

       行为---方法

Tips:

事物的特征在对象中用属性来表示。

事物的行为在对象中用方法来表示。

(4)、对象创建方式

对象字面量

var o = {
  name: 'zs',
  age: 18,
  sex: true,
  sayHi: function () {
    console.log(this.name);
  }
};  

new Object()创建对象

var person = new Object();
  person.name = 'lisi';
  person.age = 35;
  person.job = 'actor';
  person.sayHi = function(){
  console.log('Hello,everyBody');
}

工厂函数创建对象

function createPerson(name, age, job) {
  var person = new Object();
  person.name = name;
  person.age = age;
  person.job = job;
  person.sayHi = function(){
    console.log('Hello,everyBody');
  }
  return person;
}
var p1 = createPerson('
张三', 22, 'actor');

自定义构造函数

function Person(name,age,job){
  this.name = name;
  this.age = age;
  this.job = job;
  this.sayHi = function(){
    console.log('Hello,everyBody');
  }
}
var p1 = new Person('
张三', 22, 'actor');

(5)、属性和方法

1. 如果一个变量属于一个对象所有,那么该变量就可以称之为该对象的一个属性,属性一般是名词,用来描述事物的特征

2. 如果一个函数属于一个对象所有,那么该函数就可以称之为该对象的一个方法,方法是动词,描述事物的行为和功能

(6)、new关键字

构造函数,是一种特殊的函数。主要用来在创建对象时初始化对象,即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。

1.、构造函数用于创建一类对象,首字母要大写。

2.、构造函数要和new一起使用才有意义。

new在执行时会做四件事情:

1、new会在内存中创建一个新的空对象

2、new会让this指向这个新的对象

3、new会返回这个新对象

演示示例: 创建对象的几种方式

(7)、this详解

JS中this的指向问题,有时会让人难以捉摸,随着学习的深入,我们可以逐渐了解。

函数内部的this几个特点:

1. 函数在定义的时候this是不确定的,只有在调用的时候才可以确定

2. 一般函数直接执行,内部this指向全局window

3. 函数作为一个对象的方法,被该对象所调用,那么this指向的是该对象

4. 构造函数中的this其实是一个隐式对象,类似一个初始化的模型,所有方法和属性都挂载到了这个隐式对象身上,后续通过new关键字来调用,从而实现实例化

(8)、对象的使用

遍历对象的属性

通过for..in语法可以遍历一个对象

删除对象的属性

function fun() {
  this.name = 'mm';
}
var obj = new fun();
console.log(obj.name); // mm
delete obj.name;
console.log(obj.name); // undefined

演示示例: 对象的遍历

  1. JavaScript 错误
  1. 、JavaScript错误

当 JavaScript 引擎执行 JavaScript 代码时,会发生各种错误。可能是语法错误,通常是程序员造成的编码错误或错别字。可能是拼写错误或语言中缺少的功能(可能由于浏览器差异)。可能是由于来自服务器或用户的错误输出而导致的错误。当然,也可能是由于许多其他不可预知的因素。

  1. 、JavaScript try 和 catch

try 语句允许我们定义在执行时进行错误测试的代码块。

catch 语句允许我们定义当 try 代码块发生错误时,所执行的代码块。

JavaScript 语句 try 和 catch 是成对出现的。
       在下面的例子中,我们故意在 try 块的代码中写了一个错字。catch 块会捕捉到 try 块中的错误,并执行代码来处理它。

var txt="";

 function message() {

        try { adddlert("Welcome guest!"); }

       catch(err) { txt="本页有一个错误。\n\n";

       txt+="错误描述:" + err.message + "\n\n";

        txt+="点击确定继续。\n\n";

        alert(txt);

} }

  1. 、finally 语句

finally 语句不论之前的 try 和 catch 中是否产生异常都会执行该代码块。

function myFunction() {

 var message, x;

 message = document.getElementById("p01");

message.innerHTML = "";

x = document.getElementById("demo").value;

 try { if(x == "") throw "值是空的";

if(isNaN(x)) throw "值不是一个数字";

 x = Number(x); if(x > 10) throw "太大"; if(x < 5) throw "太小"; }

catch(err) { message.innerHTML = "错误: " + err + "."; }

 finally { document.getElementById("demo").value = ""; } }

  1. 、Throw 语句

throw 语句允许我们创建自定义错误。

正确的技术术语是:创建或抛出异常(exception)。

如果把 throw 与 try 和 catch 一起使用,那么您能够控制程序流,并生成自定义的错误消息。

语法:throw exception

异常可以是 JavaScript 字符串、数字、逻辑值或对象。

本例检测输入变量的值。如果值是错误的,会抛出一个异常(错误)。catch 会捕捉到这个错误,并显示一段自定义的错误消息:

function myFunction() { var message, x; message = document.getElementById("message"); message.innerHTML = ""; x = document.getElementById("demo").value; try { if(x == "") throw "值为空"; if(isNaN(x)) throw "不是数字"; x = Number(x); if(x < 5) throw "太小"; if(x > 10) throw "太大"; } catch(err) { message.innerHTML = "错误: " + err; } }

C#利用S7netplus实现西门子S7_200_SMART PLC高效点位监控与操作 本文详细介绍了如何使用C#结合S7netplus开源库高效监控与操作西门子S7-200 SMART PLC的点位。内容涵盖从开发环境搭建、建立通信连接,到核心的点位读写、批量数据处理及字节与位数组转换等关键技术,并提供了构建稳定监控程序的架构与避坑指南,帮助开发者快速实现上位机与PLC的稳定数据交互。 阅读详情

相关推荐

XianYuAutoDeliveryX:基于闲鱼API与大模型的智能自动发货系统实践

本文详细介绍了如何利用XianYuAutoDeliveryX系统,结合闲鱼API与大语言模型,构建一个智能自动发货解决方案。该系统能实现买家付款后秒级自动发货,并通过对接ChatGPT等大模型智能回复买家咨询,有效解放卖家时间,提升虚拟商品店铺的运营效率和客户体验。

bush的博客 1015

Java创建数组的方法

最近在学Java,一点小心得,希望和大家分享一下,第一次写文章,写的不好希望大家谅解,当然我也会尽力写好这篇文章!本章介绍的创建数组的各种方法,并对它们进行了对比和剖析,最后还扩展了一些知识。

Elltor 24万+

RaiDrive+AList保姆级教程:5分钟搞定OneDrive/百度网盘挂载到本地(附WebDAV配置)

本文提供RaiDrive+AList的保姆级教程,5分钟内实现将OneDrive/百度网盘挂载到本地的详细步骤,包括WebDAV配置。通过AList统一转换云存储协议,RaiDrive虚拟磁盘挂载,显著提升多网盘管理效率,适合需要跨平台操作文件的用户。

weixin_28331555的博客 456

HTML—JS—数组

什么是数组? 一个连续的存储空间 如何创建数组? 1、通过字面量创建 如: var arr=[1,asd,123,3,5645] //通过中括号来创建 2、通过构建器创建 如: var arr = new Array(8) //new一个数组,并且用的是括号,而不是中括号 字面量创建和构造器创建的区别: let arr=[4] //只声明了一个,即下标为0的是4 let arr = new Array(4) //一个数组长度为4的数组 数组的遍历(输入数组中所有的数据) for(i=0; i&lt

qq_45152044的博客 690

材料力学小白必看:纯弯曲正应力计算全解析(附实例演示)

本文详细解析了材料力学中纯弯曲正应力的计算原理与工程应用,通过实例演示帮助初学者掌握关键公式和计算流程。内容涵盖纯弯曲的基本假设、正应力分布规律、截面特性计算,以及现代工具如Excel、ANSYS和Python在应力分析中的应用,特别适合材料力学小白系统学习。

sea99的博客 1232

【渗透工具】内网多级代理工具Venom详细使用教程

Venom是一款为渗透测试人员设计的使用Go开发的多级代理工具。Venom可将多个节点进行连接,然后以节点为跳板,构建多级代理。渗透测试人员可以使用Venom轻松地将网络流量代理到多层内网,并轻松地管理代理节点。

TT小子的博客 3757

html字符串数组,javascript怎么创建字符串数组?

JavaScript 中的所有事物都是对象:字符串、数值、数组、函数等。JavaScript中数组对象的作用是:使用单独的变量名来存储一系列的值。创建字符串数组的方法:一、创建一个空数组,并将其赋值为字符串:var arr=[];var arr=new Array("1","sdf");二、实现方法为将字符串按某个字符切割成若干个字符串,并以数组形式返回,示例代码如下:var s = "abc,a...

weixin_33199315的博客 1173

【WorkBuddy专栏15】灵感被折叠到「更多」里,真的不重要了吗?——一个「被低估」功能的当下价值与未来演变

【WorkBuddy专栏15】灵感被折叠到「更多」里,真的不重要了吗?——一个「被低估」功能的当下价值与未来演变

AI人人懂 961

数组基础

创建数组的两种方法: //使用构造函数创建数组 1.var arr = new Array( ) 2.var arr = [ ] 数组的方法: push( ) 该方法可以向数组的末尾添加一个或多个元素,并返回数组的新的长度 可以将要添加的元素作为方法的参数传递 这样这些元素将会自动添加到数组的末尾 pop( ) 该方法可以删除数组的最后一个元素,并将被删除的元素作为返回值返回 unshift( ) 向数组的开头添加一个或更多元素,并返回新的长度 向前边插入元素以后,其他的元素索引会依次调整 shift(

weixin_48912846的博客 129

ShengBTE热导计算:利用ShengBTE计算热导显示NAN的原因是什么?算出的热导不随平均声子自由程变化

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值 。

**My Coding Family** 963

《派出你的AI同事:WorkBuddy案例实战》067:按行业分类的案例索引

按行业分类的案例索引 —— 《派出你的AI同事:WorkBuddy案例实战》系列文章,配图已统一为规范示意图。

LuckyHanMo的博客 99

html中js定义数组,js 中数组对象的定义赋值 以及方法

1.定义数组var m=new Array();var n=[];2.数组的赋值(两种)A. var m=new Array(2); 一个值表示数组lengthvar m=new Array(2,3,4,5); 多个值表示数组赋值B. m[0]=2; m[1]=3; m[2]=4;3.数组对象的属性数组名称.length;4.数组对象的常用方法数组转化为st...

weixin_42414947的博客 924

Challenge 4 - OSCP A

在c盘下发现一个windows.old,在里面可以找到SYSTEM和SAM文件,下载到本地,利用samdump2解密发现没解出来,再来试试pwdump.py(https://github.com/CiscoCXSecurity/creddump7)得到压缩包密码bludecode,解压之后发现一个比较特殊的文件configuration.php,里面有两个类似密码的字符串。登录之后在/opt/backups/下发现几个特殊文件,其中sitebackup3.zip是个正常的压缩包。但是这个压缩包是有密码的。

羽的博客 5786

javascript-初级-day06作用域、JS预解析机制

<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>无标题文档</title> <script> /* // 作用域: ...

133

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

JavaScript day06

访问对象有两种方法。

BXY369的博客 1016

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

javascript Day06

01–String对象的概念和作用 //String对象的概念及作用 //String概念:字符串 //作用:来处理文本(字符串) var str = ”hahd“ 对象:万事万物皆是对象 Array:数组对象 push()在尾部进行添加 pop()在尾部进行删除 shift()在头部删除 unshift()在头部进行添加 reverse()倒叙 sort()排序 join()拼接成字符串 s...

Theladder666的博客 415

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

js day06

函数

qq_47711093的博客 167

JavaScript 操作表单 Day06

JavaScript 操作表单(获取数据及MD5加密) 1 获取和设置表单的值 实现步骤: step1: 对应的< input >添加id属性。 step2: document.getElementById() step3: .value 测试代码: <!DOCTYPE html> <html lang="en"> <head> <m...

Targetu 未来可期 1029

JS day06

1.递归 在函数的内部调用自身,本身是一个死循环,造成内存泄漏 内存泄漏:内存中的空间被占满,无法保存新的数据。 如何使用递归: 要求边界条件 结合着return 2.匿名函数 function () { } (1)创建函数 函数声明 function fn(){ } 函数表达式 var fun=function(){ } 变量名称就是函数名称 对比函数名称()和函数名称 ...

HeWar_的博客 162

JavaScript_day06

day06内容 学习目标 1.流程控制语句 switch语句 2.循环语句for语句 3.循环语句do-while语句 4.循环语句while语句 5.循环语句for-in 语句,遍历对象 6.循环关键字 1.流程控制语句 switch语句 switch(expression){ case val: break; case val2: break; default: } ==>...

hanmiao12345的博客 145

JavaScript-Day06

练习:声明变量保存一个商品对象,,包含属性有编号、标题,价格;练习:创建一本图书对象,包含的属性有图书的编号,标题,图书的价格,图书的作者;练习:创建一个圆的对象,包含的属性有半径和圆周率,添加方法计算圆得到圆周长并返回结果;引用类型( 函数、对象、数组 )的数据存储在堆内存,同时会生成地址,地址保存在栈内存。练习:创建一个学生对象,包含多个成绩,遍历对象,计算出总分,平均分。练习:创建一个手机对象,包含的属性有品牌,颜色,屏幕大小,产地。练习:创建一个员工对象,包含的属性有编号,姓名,性别,工资。...

qq_45229580的博客 385

Day06-JavaScript

一、JavaScript字符串相关 1.js中 判断两个js对象的原始值是否相同。 //js中的valueof()比较的是两个js对象的原始值是否相同 document.write((s1.valueOf() == s2.valueOf())+"<br/>") ; 2.给输出的字符串添加颜色。 //fontcolor 方法:给字符串颜色标记 ("参数英文单词或者#xxxxxx") document.write(str.fontcolor("greenyellow")+"<br

Dxkr_CB的博客 222

Day_06 javaScript

1. 数组 1.1 定义 所谓数组,就是将多个元素(通常是同一类型)按一定顺序排列放到一个集合中,那么这个集合我们就称之为数组。 数组是一个有序的列表,可以在数组中存放任意的数据,并且数组的长度可以动态的调整。 1.2 创建数组 // 创建一个空数组 var arr1 = []; // 创建一个包含3个数值的数组,多个数组项以逗号隔开 var arr2 = [1, 3, 4]; // 创建一个包含2个字符串的数组 var arr3 = ['a', 'c']; ​ // 可以通过数组的len

grp_grp_grp的博客 121

js-day06

一、函数的作用域 全局函数:在全局作用域下创建的函数,可以在任意的作用域下调用. 局部函数:在函数作用域下创建的函数,只能在所在的函数作用域下调用 作用域链:多个作用域嵌套形成的结构,在查找变量的时候,首先会到当前作用域下查找,如果当前没有会不断的往上一级作用域查找 函数提升:程序执行前,会将创建的函数提升到所在作用域的最前边 ...

m0_64850010的博客 231

JavaScript笔记day06

文章目录一、for练习1、判断数字是否是质数2、for嵌套打印九九乘法表二、Object对象1、介绍2、对象分类1、内建对象:2、宿主对象:3、自定义对象:3、对象的基本操作 一、for练习 1、判断数字是否是质数 题目:输入一个数字判断这个数字是否是质数 var num=+prompt("请输入一个不小于0的数字"); if(num==1||num==0)alert("这个数不是质数!"); else if(num==2)alert("这个数是质数!"); else{ var f=true; for(

hssf_xxy的博客 684

JavaScript学习Day06笔记

Day06笔记 一、数组array 什么是数组 数组是复杂数据类型array。 函数是装代码的盒子,数组就是装数据(基本数据类型)的盒子。 语法: // 字面量方式创建数组。 var 数组名 = [数据1,数据2]; // new语句,构造函数方式创建数组。 var 数组名 = new Array(数据个数); 使用数组中数据的方法: 通过数组的下标(索引号)访问数组中的数据并赋值。 数组名[下标(索引号)] = 数据值; 注意: 数组为动态数组。 当用下标(索引号)访问超过数组数据个数

怒锤狗男人的博客 947
上一篇: day05 js基础
下一篇: 2021-08-12
java_yangXL
博客等级 码龄5年 1粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值