JavaScript 自用笔记(一)

JavaScript入门一(JS基础知识) 文章目录一、JavaScript是什么二、网页组成2.读入数据总结 一、JavaScript是什么        JavaScript(简称“JS”)百度解释如下: 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。虽然它是作为开发Web页面的脚本语言而出名,但是它也被用到了很多非浏览器环境中,JavaScript 基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式、声明式、函数式编程范式。   & 阅读详情

一、JS的HelloWorld

将代码写在此之间

<scropt type="text/javascript">

</script>

基础:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script type="text/javascript">
    alert("一切罪恶都将绳之以法!!!"); /* 控制浏览器弹出一个警告框 */
    document.write("鸡你太美"); /* 让计算机在页面中输出一个内容 */ /* document.write()可以向body中输出一个内容 */
    console.log("鸡你太美"); /* console.log()向控制台输出一个内容 */
    /* 多条指令从上向下执行 */
    </script>
</head>
<body>
</body>
</html>

 
 
 

二、JS编写位置

不方便维护,不推荐

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
        <!--可以将js代码编写到标签的onclick属性中。
        当我们点击按钮时,js代码才会执行
        虽然可以写在标签的属性中,但是他们属于结构与行为耦合,不方便维护,不推荐使用 -->
        <button onclick="alert('你点我干嘛?!');">点我一下</button>
        <!-- 可以将js代码写在超链接的href属性中,这样当点击超链接时,会执行js代码 -->
        <a href="javascript:alert('让你点你就点!!'); ">你也点我一下</a>
        <a href="javascript:;">你也点我一下</a>
</body>
</html>

推荐写在script标签中
<script type="text/javascript"></script>
<script src="js/hello.js"></script>
 
 
 

三、JS基础语法

/* 
	多行注释
	JS注释
	多行注释,注释中内容不会被执行,但是可以在源代码中查看 
*/
//单行注释(只对后面有作用)

1、JS中严格区分大小写
2、JS中每一条语句以分号结尾
(若不加分号,浏览器会自动添加,但是会消耗一些系统资源)
3、JS中会忽略多个空格和换行,可以利用空格和换行对代码进行格式化
 
 
 

四、字面量和变量

字面量
  都是不可变的值(如:1,2,3,4)
  字面量都是可以直接使用,但是一般不会直接使用字面量。

变量
  可以用来保存字面量,而且变量的值是可以任意改变的变量更加方便我们使用,所以在开发中都是通过变量去保存一个字面量,而很少直接使用字面量。

  1. 变量指的是在程序中保存数据的一个容器
  2. 变量是计算机内存中存储数据的标识符,根据变量名称可以获取到内存中存储的数据
  3. 也就是说,我们向内存中存储了一个数据,然后要给这个数据起一个名字,为了是我们以后再次找到他·语法:var变量名=值

– 定义变量及赋值

//定义一个变量
var num;
//给一个变量赋值
num = 100;
//定义一个变量的同时给其赋值
var num2 = 200;

·注意;
1) 一个变量名只能存储一个值
2) 当再次给一个变量赋值的时候,前面一次的值就没有了3.变量名称区分大小写(s 严格区分大小写)

声明变量
在JS中使用var关键字来声明一个变量

变量的命名规则和命名规范
– 规则:必须遵守的,不遵守就是错

  1. 一个变量名称可以由数字、字母、英文下划线(_)、美元符号($)组成
  2. 严格区分大小写
  3. 不能由数字开头
  4. 不能是保留字或者关键字5.不要出现空格

– 规范:建议遵守的(开发者默认),不遵守不会报错

  1. 变量名尽量有意义(语义化)
  2. 遵循驼峰命名规则,由多个单词组成的时候,从第二个单词开始首字母大写
  3. 不要使用中文

数据类型 (重点)
– 是指我们存储在内存中的数据的类型
– 我们通常分为两大类基本数据类型和复杂数据类型

var a; //记得为变量赋值

 
 
 

五、标识符

– 在JS中所有的可以由我们自主命名的都可以称为是标识符。
– 例如:变量名、函数名、属性名都属于标识符。
– 命名一个标识符时需要遵守如下的规则:
 1.标识符中可以含有字母、数字、_、$。
 2.标识符不能以数字开头
 3.标识符不能是ES中的关键字或保留字
 4.标识符一般都采用驼峰命名法(首字母小写,每个单词开头大写,其余小写)
– JS底层保存标识符时实际上是采用的Unicode编码,所以理论上讲,所有的utf-8中含有的内容都可以作为标识符。

在这里插入图片描述
 
 
 

六、字符串(数据类型)

数据类型指的是字面量的类型。
在JS中一共有六种数据类型。
  String字符串
  Number教值
  Boolean布尔值
  Null空值
  Undefined未定义
  object对象

其中String Number Boolean Null Undefined属于基本数据类型,而Object属于引用数据类型。
 

(一)String字符串

– 在JS中字符串需要使用引号引起来。
– 使用双引号或单引号都可以。
– 引号不能嵌套,同样的引号不能嵌套。

var str ="he11o";
console.log("hello");

在字符串中我们可以使用\作为转义字符,当表示一些特殊符号时可以使用\进行转义。
" 表示 "
‘表示’
\n 换行
\t 制表符
\表示\

str =“我说:\"今天天气真不错!\"";
var str2 ="hello"
str2 = "111"
str2 = 3

同一个变量只要用一个var就行。
 

(二)Number 数值

– 在JS中所有的数值都是Number类型,包括整数和浮点数(小数)

var a = 123 //数字123
var b = "123" //字符串123
a =456.789; //整数和小数
/* 
可以使用一个运算符typeof来检查一个变量的类型
语法:typeof变量
检查字符串时,会返回string
检查数字时,会返回number
*/
console.log(typeof a);
console.log(typeof b);

– JS中可以表示的数字的最大值
 Number.MAX_VALUE
 Number.MIN_VALUE(大于0的最小值)
 如果使用Number表示的数字超过最大值则输出显示 Infinity(无穷的)
 用typeof检查Infinity也会返回Number

a = Number.MAX_VALUE * Number.MAX_VALUE
console.log(Number.MAX_VALUE * Number.MAX_VALUE);

– NaN 是一个特殊的数字,表示Not A Number
 使用typeof检查一个NaN也会返回number。

– 在JS 中整数的运算基本可以保证精准

var c = 12345678 + 87654321;
console.log(c);

– 如果用JS进行浮点元素的运算,可能得到一个不精准的结果,所以千万不要用JS进行精确度较高的运算。

var c = 0.1 + 0.2;
console.log(c)

 

(三)Boolean 布尔值

– 布尔值只有两个,主要用来做逻辑判断
 true - 表示真
 false - 表示假

– 使用typeof检查一个布尔值时,会返回boolean。
 

(四)Null 空值

Null类型的值只有一个,就是null
 null值专门用来表示一个空对象
 使用typeof检查null值时,会返回object
 

(五)Undefined 未定义

Undefined类型的值只有一个,就是undefined
 当声明一个变量,但是并不给变量赋值时,它的值就是undefined
 使用typeof检查undefined值时,会返回undefined
 

(六)判断数据类型

– 既然已经把数据分开了类型,那么我们就要知道我们存储的数据是一个什么类型的数据
– 使用typeof关键字来进行判断

//第一种使用方式
var n1 = 100;
console. 1ogctypeof n1);

//第二种使用方式
var si = 'abcdefg ' ;
console.1og(typeof(s1);

 
 
 

七、强制类型转换

– 指将一个教据类型强制转换为其他的数据类型
– 类型转换主要指,将其他的数据类型,转换为
 String Number Boolean
 

(一)将其他的数据类型转换为String

方式一:
  – 调用被转换数据类型的toString()方法
  – 该方法不会影响到原变量,它会将转换的结果返回
  – 但是注意:null和undefined这两个值没有ToString()方法,如果调用他们的方法,会报错

//调用a的ToString()方法
//调用xxx的yyy()方法,就是xxx,yyy ()
a.ToString();

a= true;
a=a .tostring();
a= null;
a=a .tostring();
a= undefine;
a=a .tostring();

console.log(typeof a);
console.log(a);

方式二:
  – 调用String()函数,并将被转换的数据作为参数传递给函数
  – 使用String()函数做强制类型转换时,对于Number和Boolean实际上就是调用的tostring()方法但是对于null和undefined.就不会调用toString()方法 (它会将null直接转换为"null",将undefined直接转换为“undefined)

//调用String()函数,来将a转换为字符串
a = string(a);

console.log(typeof a);
console.log(a);

 

(二)将其他的数据类型转换为Number

转换方式一:
  – 使用Number()函数
    – 字符串–>数字
      1.如果是纯数字的字符串,则直接将其转换为数字
      2.如果字符串中有非数字的内容,则转换为NaN
      3.如果字符串是一个空串或者是一个全是空格的字符
    – 布尔 -->数字
      ture 转成 1
      false转成 0
    – Null -->数字 (0)
    – Undefined–>数字 (NAN)

转换方式二:
  --这种方式专门用来对付字符串
  – parseInt()把一个字符串转换为一个整教
  – parseFloat()把一个字符串转换为一个浮点数

var a = "123"

///调用Number()函数来将a转换为Number类型
a = Number(a);

a = ture;
a = Number(a);

a = null;
a = Number(a);

a = undefined;
a = Number(a);

a = "123px";
//调用parseInt()函数将a转换为Number
//parseInt()可以将一个字符串中的有效的整数内容去出来,然后转换为Number
a = parseInt(a);

//parseFloat()作用和parseInt()类似,不同的是它可以获得有效的小数
a = "123.456px";
a = parseFloat(a);

//如果对非String使用parseiInt()或parseFloat()它会先将其转换为String,然后在操作
a = true;
a = parseInt(a);

console.log(typeof a);
console.log(a);

1、其他进制数字

var a = 123;
/*
*在js中,如果需要表示16进制的数字,则需要以0x开头
*        如果需要表示8进制的数字,则需要以0开头
*        如果需要表示2进制的数字,则需要以0b开头
*            但不是所有浏览器都支持
*/
a = 0x10;
a = 0xff
a = 0xCafe

//向"070"这种字符串,有些浏览器会当成8进制解析,有些会当成10进制解析
a = "070";
//可以在parseInt()中传递一个第二个参数,来指定数字的进制
a = parseInt(a,10);

console.log(a);
console.log(typeof a);

 

(三)将其他的数据类型转换为Boolean

方式一:
  – 使用Boolean()函数
    – 数字—>布尔
      – 除了8和NaN,其余的都是true
    – 字符串—>布尔
      – 除了空串,其余的都是true
    – null和undefined都会转换为false

方式二(隐式类型转换):
  – 为任意的数据类型做两次非运算,即可将其转换为布尔值-例子:

var a = "hello";
a= !!a;  //itrue
var a = 123; //true
a= -123; //true
a= 0; //false
a= Infinity; //true
a= NaN; //false

//调用Boolean()函数来将a转换为布尔值
a = Boolean(a);

console.log(a);
console.log(typeof a);

 
 
 

八、算术运算符

运算符也叫操作符
 通过运算符可以对一个或多个值进行运算,并获取运算结果
 比如: typeof就是运算符,可以来获得一个值的类型
   它会将该值的类型以字符串的形式返回
   number string boolean undefined object
 
算术运算符
  当对非Number类型的值进行送算时,会将这些值转换为Number然后在运算
    任何值和NaN做运算都得NaN

/*
*   +
*       +可以对两个值进行加法运算,并将结果返回
*       如果对两个字符串进行加法运算,则会做拼串会将两个字符串拼接为一个字符串,并返回
*       任何的值和字符串做加法运算,都会先转换为字符串,然后再和字符串做拼串的操作·
*   -
*       -可以对两个值进行减法运算,并将结果返回
*   *
*       *可以对两个值进行乘法运算
*   /
*       /可以对两个值进行除法运算
*   %
*       % 取模运算(取余数)
*/
var a = 123;

var result typeof a;
//console.log(typeof result);
result = a + 1;
result = 456 +789;
result = true + 1;
result = true + false;
result = 2 + false;
result = 2 + NaN;

result = "123" + "456"

result =123 + "1";
result = true + "he1lo" ;
//任何值和字符串相加都会转换为字符串,并做拼串操作
/*  我们可以利用这一特点,来将一个任意的数据类型转换为String
 *  我们只需要为任意的数据类型+一个"”即可将其转换为String
 *  这是一种隐式的类型转换,由浏览器自动完成,实际上它也是调用String()函数
 */
var c =123;

c=c + "我是来把c变成字符串的";

// console.log(result);
// console.log(typeof c);
// console.log("c = "+c); (c+123)
result = 1 +2 + "3"; //33
result = "1”+2 + 3; //123

result = 2 * null
result = 4 / 3
/*
*任何值做 - * / 运算时都会自动转换为Number
*任何值做- * / 运算时都会自动转换为Number我们可以利用这一特点做隐式的类型转换
*   可以通过为一个值-0 *1 / 1来将其转换为Number原理和Number()函教一样,使用起来更加简单
*/

result = 9 % 3

console. log( "result = "+result);

 
 
 

九、一元运算符

一元运算符,只需要一个操作数
 + 正号
    – 正号不会对数字产生任何影响
 - 负号
    – 负号可以对数字进行负号的取反
 - 对于非Number类型的值,
    它会将先转换为Number,然后在运算
    可以对一个其他的数据类型使用+,来将其转换为number
    它的原理和Number()函数一样

var a = 123;

a = -a;
a = true;
a = "18";
a = +a;

/*console.log("a = "+a);
console.log(typeof a);*/

var result = 1 +"2"+ 3;  //"2"会输出字符串123,1++"2"+3,使"2"先变成数字,然后输出成6
console.log("result = "+result);

 
 
 

十、自增和自减

自增++
  – 通过自增可以使变量在自身的基础上增加 1
  – 对于一个变量自增之后,原变量的值会立刻自增 1
  – 自增分成两种:后++(a++)和前++(++a)
    无论是a++还是++a,都会立即使原变量的值自增1,不同的是a++和++a的值不同
    a++的值等于原变量的值(自增前的值)
    ++a的值等于原变量新值(自增后的值)
自减- -
  – 通过自减可以使变量在自身的基础上减1
  – 自减分成两种:后–(a–)和前–(–a)
    无论是a–还是–a都会立即使原变量的值自减1
      不同的是a–和–a的值不同
        a–是变量的原值(自减前的值)
        --a是变量的新值(自减以后的)

var a = 1;
//使a自增1
//a++;
//++a;
//console.log(a++);
//console.log("a++ = " + ++a);
console.log("a++ = " + a++);
console.log("a = "+a);
var c = 10;
//第一次c++,是在10的基础上自增 
console.log(c++);

//第二次c++,是在11的基础上自增c++;
c++;

 
 
 

十一、逻辑运算符

JS中为我们提供了三种逻辑运算符
 

! 非

  – !可以用来对一个值进行运算
  – 所谓非运算就是值对一个布尔值进行取反操作,
    true变false,false变true
  – 如果对一个值进行两次取反,它不会变化
  – 如果对非布尔值进行元素,则会将其转换为布尔值,然后再取反,
  所以我们可以利用该特点,来将一个其他的数据类型转换为布尔值
  可以为一个任意数据类型取两次反,来将其转换为布尔值,
  原理和Boolean()函数一样

var a = false;
//对a进行非运算
a = !!a;
console.log("a = "+a)
var b = 10;
b = !b;
console. 1og("b = "+b);
console.log(typeof b);

 

&&与

– &&可以对符号两侧的值进行与运算并返回结果
– 运算规则
  – 两个值中只要有一个值为false就返回false,
    只有两个值都为true时,才会返回truel

//如果两个值都是true则返回true
var result = true && true;

//只要有一个false,就返回false
result = true && false;
result = false && true;
result = false && false;

console.log( ""result = "+result);
//第一个值为true,会检查第二个值
//true && alert("看我出不出来!!");
//第一个值为false,不会检查第二个值
//False && alert("看我出不出来!!");

 

| | 或

– ||可以对符号两侧的值进行或运算并返回结果
– 运算规则:
  – 两个值中只要有一个true,就返回true
    如果两个值都为false,才返回falsel
  – JS中的“或”属于短路的或
    如果第一个值为true,则不会检查第二个值
    第一个值为false,则会检查第二个值

//两个值都为false,则返回falsel
result = false ll false;
//只有有一个true,就返回true
result = true ll alse;
result = false lltrue ;
result = true ll true ;

console. log("result = "+result);

 
 
 

十二、赋值运算符

/*
*  =
*      可以将符号右侧的值赋值给符号左侧的变量
*  +=
*      a+=5等价于a = a+ 5
*  -=
*      a-=5等价于a = a - 5
*  *=
*      a*=5等价于a = a *5
*  /=
*      a/=5等价于a = a / 5
*  %=
*      a%=5等价于a = a度5
*/

 
 
 

十三、关系运算符

/*通过关系运算符可以比较两个值之间的大小关系,
    如果关系成立它会返回true,如果关系不成立则返回false
 
 > 大于号
	-- 判断符号左侧的值是否大于右侧的值
	-- 如果关系成立,返回true,如果关系不成立则返回false

>= 大于等于
	-- 判断符号左侧的值是否大于或等于右侧的值

<小于号

<=小于等于
非数值的情况
	-- 对于非数值进行比较时,会将其转换为数字然后在比较
	-- 如果符号两侧的都是字符串时,不会将其转换为数字进行比较
而会分别比较字符串中字符的Unicode编码
 */
/*比较两个字符串时,比较的是字符串的字符编码
console. 1og("a" < "b");//true

比较字符编码时是一位一位进行比较
如果两位一样,则比较下一位,所以借用它来对英文进行排序
console.1og("abc" < "bcd" ); //true

比较中文时没有意义
console.log(”戒”>“我");//true

如果比较的两个字符串型的数字,可能会得到不可预期的结果

注意:在比较两个字符串型的数字时,一定一定一定要转型
*/

 
 
 

十四、相等运算符

相等运算符用来比较两个值是否相等,
如果相等会返回true,否则返回false

== 来表示相等运算
  – 当使用==来比较两个值时,如果值的类型不同,则会自动进行类型转换,将其转换为相同的类型然后在比较

console.log("1" == 1);//true
console.log(true == "1");//true

不相等
  不相等用来判断两个值是否不相等,如果不相等返回true,否则返回false
   – 使用!=来做不相等运算
   – 不相等也会对变量进行自动的类型转换,如果转换后相等它也会返回false

console.log("1" != 1);//false

===全等
  – 用来判断两个值是否全等,它和相等类似,不同的是它不会做自动的类型转换
    如果两个值的类型不同,直接返回false

console.log("123" === 123);//false

!==不全等
  – 用来判断两个值是否不全等,和不等类似,不同的是它不会做自动的类型转换
    如果两个值的类型不同,直接返回true

console.log("1" !== 1);//true

 
 
 

十五、条件运算符

条件运算符也叫三元运算符
 语法:
    条件表达式?语句1:语句2;
  – 执行的流程:
    条件运算符在执行时,首先对条件表达式进行求值,
      如果该值为true,则执行语句1,并返回执行结果
      如果该值为false,则执行语句2,并返回执行结果

//false?alert("语句1") :alert("语句2");
var a = 30;
var b =20;
l > b ? alert("a大"):alert("b大");
//a > b ? alert( "a大" ) : alert("b大");

//获取a和b中的最大值
var max = a > b ?a : b;
//获取a b c 中的大值
max = max > c ? max : c;
//这种写法不推荐使用,不方便阅读

如果条件的表达式的求值结果是一个非布尔值
会将其转换为布尔值然后在运算
 
 
 

十六、三元运算符

– 三元运算,就是用两个符号组成一个语句
– 语法:|条件?条件为true的时候执行︰条件为 false 的时候执行

var age = 18;
age >= 18 ? alertc'已经成年"): alert("没有成年")

 
 
 

十六、Unicode编码表

    <title>Document</title>
    <script type="text/javascript">
        /* 在字符串中使用转义字符输入Unicode编码
        \u四位编码 */
        console.log("lu2620");
    </script>
</head>
<body>
    <!--在网页中使用Unicode编码
        &#编码;这里的编码需要的是10进制
    -->
    <h1 style="font-size: 208px; ">&#9760;</h1>   
</body>
</html>
JavaScript的起源?不同的JavaScript和引擎?JS版本发展史? 1995年,JavaScript诞生了。不得不提到它的标准ECMAScript, 它是一个语言标准,而非具体的语言。JavaScript除了名字有”Java”, 其它和Java没任何关系。Netscape为推广自家的LiveScript,命名中包含当时最流行的编程语言Java来蹭蹭热度。Netscape公司有些人可能不熟悉, 它就是早期被IE做浏览器对抗后来逐渐消亡一家公司。 阅读详情

相关推荐

《webgl入门指南》学习笔记一three.js与sim.js

最近又一次很久木有更新博客了,但是不是停了,而是一次性更新了太多,想清楚了自己水平有限,不想误导大家,所以就把这里单纯的当做自己的学习笔记。 上次让立方体转起来了,这次我们就直接介绍一个框架《webgl入门指南》的sim.js 这个东西是什么玩意呢,就是一个模拟器(官方说法),实际上就是简化了three.js里面的各种初始化,比如设置渲染器,循环重绘,处理DOM事件,基本的层级(层次模型)操作,

Chase_freedom的专栏 4053

js学习笔记(一) 自用,需要的自取

获取body document.body 获取html document.documentelement 事件是触发响应的机制 事件三要素: 事件源,事件类型,事件处理程序 事件源: var btn = document.getelementById(‘btn’) 事件类型:鼠标点击,鼠标停留 事件处理程序:通过一个函数赋值的方式完成 btn.onclick()=function(){ ale...

牧码人的博客 257

基于深度视觉实现机械臂对目标的识别与定位

Marker ID 和 Marker size 自选,在 launch 文件中做相应的修改(本教程演示使用 Marker ID:582,Marker size:30mm)根据相机和机械臂的安装方式不同,手眼标定分为眼在手上和眼在手外两种方式,双臂机器人的相机和机械臂基座的相对位置固定,所以应该采用眼在手外的手眼标定方式。后续的视觉引导机械臂抓取测试实验基于本实验实现,通过视觉引导右臂完成抓取目标物,所以默认已使用机械臂右臂和相机完成了手眼标定。文件,根据打印的marker 标签,需要配置。

realman_Rop的博客 3765

JavaScript学习笔记(一)

本文主要介绍了 JavaScript 的基本概念、语法结构、变量和常量、数据类型及类型转换方法

2402_82857752的博客 3652

Windows 10 下 Nacos 3.0.2 单机版保姆级安装教程(含JDK 17配置与MySQL 8.0连接避坑)

本文提供Windows 10下Nacos 3.0.2单机版的详细安装教程,涵盖JDK 17配置、MySQL 8.0连接优化及生产级安全设置。通过步骤详解和常见问题解决方案,帮助开发者快速完成Nacos的安装与配置,确保服务发现与配置管理的高效运行。

weixin_29237635的博客 320

从零搭建IoT数据中台:STM32+WebSocket实现边缘设备与Web端实时双向通信

本文详细介绍了如何从零搭建基于STM32和WebSocket协议的IoT数据中台,实现边缘设备与Web端的实时双向通信。通过硬件选型、协议设计、服务器搭建及安全优化,提供了一套低延迟、高并发的企业级解决方案,适用于智能农业和工业监控等场景。

tea88的博客 749

JS笔记-自用

JS是运行在客户端的编程语言,实现人机交互,作用:网页特效,表单验证,数据交互(获取后端数据,处理后渲染到前端),服务端编程node.js,js基本语法,DOM页面文档对象模型:对业面元素进行操作 BOM浏览器对象模型:操作浏览器

nuist_NJUPT的博客 621

从零构建锂电池主动均衡系统:Simulink仿真中的Buck-Boost拓扑实战指南

本文详细介绍了如何在Simulink中从零构建基于Buck-Boost拓扑的锂电池主动均衡系统。通过仿真环境搭建、参数优化、控制策略设计和性能评估,为工程师提供了完整的实战指南,帮助快速验证和优化均衡算法,提升电池组一致性与寿命。

gitlab7runner的博客 897

javaScript学习笔记(一)js基础

================================= 公众号 关注一波 (一叶知秋博客) 不定期分享视频资料 一、简介 1、概述: JavaScript是目前web开发中不可缺少的脚本语言,js不需要编译即可运行,运行在客户端,需要通过浏览器来解析执行JavaScript代码。 诞生于1995年,当时的主要目的是验证表单的数据是否合法。 Java...

一叶知秋 13万+

一种导弹追踪算法的MATLAB仿真实现

以下是一个用于模拟机动变轨导弹和防空导弹追踪过程的 MATLAB 代码,同时会提供 3D 效果展示。你可以运行这段代码,从而观察机动变轨导弹和防空导弹的速度与位置变化。

SmartGridequation的博客 935

机器人视觉联动精度优化:从±2mm到±0.02mm,产线级手眼标定全实战

2025年我接东莞长安Type-C接口分拣项目的时候,就是栽在了手眼标定上:实验室里标定完精度±0.5mm,一到产线直接掉到±2mm,机器人10次有3次抓不住,2000多件Type-C接口直接报废,还撞坏了2套汇川SCARA机器人的吸盘,本来45天的工期拖了3个月,不仅没赚到钱,还倒贴了几万块。手眼标定从来不是简单的跑个demo、算个矩阵就完事了,它是一个系统工程:从硬件选型、安装固定、相机标定、标定流程、算法优化、环境控制、重复验证,每一个环节都会影响最终的联动精度。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 387

黑马JS教程笔记(JavaScript教程)——JS基础

<head><title>JavaScript练习</title></head><body><script></script></body>

Dontla的博客 2661

如何选择深度强化学习算法:MuZero/SAC/PPO/TD3/DDPG/DQN/等算法

如何选择深度强化学习算法:MuZero/SAC/PPO/TD3/DDPG/DQN/等算法

丨汀、的博客 5222

JavaScript从入门到精通学习笔记(一)

最近有些空闲时间觉得前端框架虽然提高了开发效率,却让人的基础变得薄弱,所以打算再去学习一下原生JS。第二章 使用JavaScript开发2.1、编写第一个JavaScript脚本‘开发工具:MyEclipse新建web项目命名Chapter2,在WebRoot目录下新建myfirstpage.htm文件,添加如下内容&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHT...

Terisadeng的博客 1万+

【Win10/11】Windows电脑WiFi显示小地球/断网的解决方法 Windows WiFi小地球、网络连接中断、网络重置、无线网卡驱动、Win10/Win11网络修复

最近经常有粉丝留言问我,Windows 电脑突然连不上 WiFi,右下角网络图标显示成了“小地球 🌐”,或者干脆提示“未连接 - 没有可用的连接”。明明其他设备网络都正常,唯独自己的电脑断了。作为在互联网大厂混迹多年的前端程序员,我自己也碰到过这个问题。总结几种比较常见、亲测有效的解决方法,写出来供大家参考,希望能帮你快速恢复上网!问题原因推荐解决方法系统设置错乱使用网络重置功能驱动异常或冲突卸载后重启自动安装驱动驱动版本过旧手动更新网卡驱动实在不行考虑使用系统还原点或重装系统这几个方法中,

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 3850

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

vue笔记自用

本文为自用笔记,后续会不断改进。

m0_62519278的博客 424

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

javascript从入门到跑路-----小文的js学习笔记目录

** javascript从入门到跑路-----小文的js学习笔记(1)---------script、alert、document。write() 和 console.log 标签

qq_45948983的博客 6849

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

JavaScript学习笔记

JavaScript学习笔记。

x18395499277的博客 1979

JavaScript学习手册一:JS简介

第1关:JavaScript 语言介绍、注释及基本输出方式 任务描述 要了解一门编程语言,要从输出开始。 本关任务:采用相关知识中介绍的任意一种方法输出“ Hello, JavaScript! ”。 相关知识 JavaScript 语言简介 JavaScript 诞生于1995年。在那个时代用户提交一个表单需要获取服务器端的反馈,这个时间大概十几秒,如果能在客户 qa 端完成一些基本的验证绝对是很大的进步。当时如日中天的 Netscape 公司,决定着手开发一种客户端语言解决简单的表单验证。就职

weixin_54327001的博客 1万+

JS学习笔记(一)-初识JavaScript

文章目录学习笔记(一)准备工作初识JavaScriptJS的组成JS书写位置JS注释JS输入输出语句 2021.1.11 学习笔记(一) 准备工作 今天开始学习Javascript,开始之前先学习开发工具VS Code的几个快捷键和安装一些常用插件以及一些VS Code生成的骨架标签的含义。 快捷键 !+回车/Tab 自动生成页面骨架结构 Ctrl++/- 放大/缩小视图 Alt+B 在浏览器中打开 Ctrl+/ 注释 常用插件 Chinese(Simplified)Language Pack for

Ludwig1957的博客 1415

obsidian-js-engine-plugin:在笔记中轻松运行 JavaScript 代码

obsidian-js-engine-plugin:在笔记中轻松运行 JavaScript 代码 项目介绍 Obsidian 是一款功能强大的知识库应用,可以帮助用户整理和链接信息。而 obsidian-js-engine-plugin 是一款专门为 Obsidian 设计的插件,它允许用户在笔记中直接运行 JavaScript 代码。通过特殊的代码块,用户可以编写和执行 JavaScript 代...

gitblog_00649的博客 1300

【JS】JavaScript入门笔记第一弹JS基本语法、变量、数据类型~_jsscript

💡💡*浏览器分成两部分:渲染引擎和JS引擎渲染引擎:用来解析HTML与CSS,俗称内核,JS引擎:也称为JS解释器。用来读取网页中的JavaScript代码,对其处理后运行ps:浏览器本身并不会执行JS代码,而是通过内置JavaScript引擎(解释器)来执行JS代码。JS引擎执行代码时逐行解释每一句源码(转换为机器语言),然后由计算机去执行,所以JavaScript语言归为脚本语言,会逐行解释执行。💡💡变量:变量是用于存放数据的容器。

2501_90251128的博客 1557

JS学习笔记一

出现情况:只声明变量,不赋值的情况下,变量的默认值为undefined,一般很少直接为某个变量赋值为undefined。使用场景:把null作为尚未创建的对象(将来有个变量里面存放的是一个对象,但是对象还没创建好,可以先给个null)它有两个固定的值true和false,表示肯定的数据用true(真),表示否定的数据用false(假)编写程序时过度依靠系统内部的隐式转换是不严谨的,因为隐式转换规律并不清晰,大多是靠经验总结的规律。它是一个不正确的或者一个未定义的数字操作所得到的结果。

DFTAFHGYUGFY的博客 1178

js学习笔记(自用)

本博文是作者在学习js时记的笔记,教学视频为黑马程序员pink老师js视频,附上链接:js教学视频 这是自己学习html和css的笔记:html和css笔记 p6 p7 javascript组成 p10 输入输出语句 prompt是弹出用户能输入的文字框,alert是警示框(用户不能输入),console.log只有在浏览器console控制台能看到 js引入: <script type="text/javascript" src="table.js"></script>

qq_45734879的博客 380

JavaScript学习 (一)js简介,初步了解js

一、web发展史 Mosaic,是互联网历史上第一个获普遍使用和能够显示图片的网页浏览器。于 1993年问世。 1994 年 4 月,马克.安德森和 Silicon Graphics(简称为 SGI,中译为“视算科技”或“硅 图”)公司的创始人吉姆·克拉克(Jim Clark)在美国加州设立了“Mosaic Communication Corporation”。 Mosaic 公司成立后,由于伊利诺伊大学拥有 Mosaic 的商标权,且伊利诺伊大学已将技术转让给 Spy Glass 公司,开发团队必须彻底重

qq_44799466的博客 1921

【前端学习笔记】JS篇·一

JavaScript是一种广泛使用的客户端脚本语言,最初用于网页表单的动态校验,现已扩展到服务器端编程、桌面应用、移动应用、物联网和游戏开发等多个领域。它通过浏览器内置的JavaScript引擎逐行解释执行,属于脚本语言。JavaScript由ECMAScript、DOM和BOM三部分组成,分别负责语法、文档对象模型和浏览器对象模型。JavaScript代码可以嵌入HTML中,或通过外部文件引入。

v876774538的博客 851
上一篇: HTML+CSS 自用知识点(五)
下一篇: JavaScript 自用笔记(二)
Whnist
博客等级 码龄4年 8粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值