##JavaScript教程
#js简介
javaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。
在1995年时,由Netscape公司的Brendan Eich,在网景导航者浏览器上首次设计实现而成。因为Netscape与Sun合作,Netscape管理层希望它外观看起来像Java,因此取名为JavaScript。但实际上它的语法风格与Self及Scheme较为接近。[1]
为了取得技术优势,微软推出了JScript,CEnvi推出ScriptEase,与JavaScript同样可在浏览器上运行。为了统一规格,因为JavaScript兼容于ECMA标准,因此也称为ECMAScript。

#快速学习
一、使用语法规范

① 在html代码里边引入js语言
 <script  type=”text/javascript”>具体js代码</script><script  type=”text/javascript” src=”js文件”></script>
② 代码大小写敏感true/false       布尔值
TRUE/FALSE   非布尔值③ 结束符号每个简单语句使用”;”分号结束,与php类似

在javascript里边,该分号不是必须的,但是推荐使用
④ 注释
// 单行注释
/多行注释/
⑤ 变量
其值可以发生改变的量就是变量。
变量是内存中运行的最小单位
var name = “tom”; var age = 23; var address_123 = ‘北京’;

变量名字命名规则:
js里边:字母、数字、下划线、$符号、汉字 等5个组成部分,数字不能作为名字的开始内容。

 var  shoudu = “xxxx”;var abc_$_123 = “hello”;var  首都 = “北京”;var 99_num = 101;  //错误变量名字

⑥ 数据类型

javascript(6种):  number(int/float)  string   boolean   null   undefined   object(数组是对象的一部分)null类型:空对象 类型。

问:什么时候使用null?
答:使用null声明变量可以提高代码可读性,
可以预先声明一个null类型的变量,后期使用一个具体对象进行赋值。

var  name = “”;
var  age  = 0;
var  per  = null;   //先声明,后期再使用具体对象进行赋值

undefined未定义类型:使用一个没有声明的变量。

⑦ typeof 判断变量的数据类型
判断变量的数据类型

console.log(typeof 10);//number

二、Number数值数据类型

1、分为十进制、八进制、和十六进制
例如:

console.log(10);//十进制
console.log(065);//八进制
console.log(0xbcd);//十六进制

2、浮点数:即点小数点的数

console.log(10.0);
console.log(0.23);
console.log(14.3);

3、最大数和最小数

Number.MAX_VALUE
Number.MIN_VALUE

4、无穷大数
两个最大数的算术和超出了javascript的表示范围,就显示无穷大infinity
或者一个数去除以0,获得的结果也是infinity

console.log(Number.MAX_VALUE*2);

三、运算符

1、算数运算符

+  -   *   /   %取余数(模)    ++  --
i++ : 先赋值、再++计算
++i : 先++计算,再赋值

注意:
i++和++i在没有赋值的时候进行运算的时候结果是一样的,但是
在赋值的情况下:i++是先赋值再运算,而++i是先自增加一再进行运算。

2、比较运算符

>    <    >=     <=     !=     ==
===全等于    !==不全等于全等于===:比较值的类型和数据大小
等于==: 比较值的数据大小
console.log(10==’10’);    //true
console.log(10===’10’);      //false
console.log(10===10);    //true比较运算符的返回信息是boolean结果信息

3、逻辑运算符

逻辑或||:其中之一为真,结果为真
逻辑与&:都为真,结果为真
逻辑或!:结果和运算结果相反

四、流程控制

***顺序结构***
分支选择结构:if  else if  else    switch
循环结构:while(){}   do{}while()   for()

switch用法:

switch(变量){
case  常量:
分支;break;
case  常量:
分支;break;
case  常量:
分支;break;
default:
分支;break;
}

两个关键字:break和continue

break:在循环、switch里边有使用结束当前的本层循环,跳出switch的分支结构
continue:在循环里边使用跳出本次循环,进入下次循环

注意:可以通过设置标志位来改变

for1
flag:
for2
pig:
for3
for4
break  flag/pig;   //把flag/cat标志的循环给结束
continue  flag/pig;     //结束flag/cat标志的当前循环,进入下次循环

六、函数function

函数声明

1、第一种方式(常规方式):

function  函数名(){}该方式的函数有“预加载”过程,允许我们先调用函数、再声明函数**预加载**:先把函数的声明放入内存。代码看起来是先调用、后声明,本质是先声明、后调用的。函数名();
function  函数名(){}函数先调用、后声明的条件是:全部代码在同一个”<script>”标记里边。

2、声明函数赋值(匿名函数):

var  函数名 = function(){}
在javascript里边,函数就是一个变量,数据类型是对象。
该方式没有“预加载”,必须“先声明、后调用”。

函数参数
1、实参和形参:

function(param1,param2){}//在声明的时候,称为形参
function(param1,param2);//在调用的时候,称为实参

注意:在javascript里边:实参与形参个数没有严格的对应要求

2、关键字arguments:

function  函数名(){}  //函数声明没有形参
函数名(实参,实参);  //调用的时候有传递实参

例如:

//声明函数
function fun(){var length = arguments.length;//获取参数if(length == 1){console.log(arguments[0]);}else if(length == 2){console.log(arguments[0] + "---" + arguments[1]);}
}
//函数调用
fun("hello");//hello
fun("hello","world");//hello---world

3、callee关键字

意思:在函数内部使用,代表当前函数的引用(名字)。
作用:降低代码的耦合度。耦合度:一处代码的修改会导致其他代码也要发生改变(耦合度高)在项目里边要开发低耦合度的代码(一处代码修改尽量少地引起其他代码的变化)。

例如:

function fun(){arguments.callee();   //调用本函数(或者fun())
}
fun();

4、函数返回return

function 函数名称(){函数执行体代码...return  信息;
}
console.log(函数名称());  //可以输出函数的return信息
var fun1 = 函数名称();     //可以使得return信息对变量进行赋值
一个函数执行完毕可以通过return关键字返回一定的信息,该信息可以直接输出、也可以进行变量赋值。return本身还有结束函数的执行效果。
在一定意义上看,全部的数据类型(数值、字符串、布尔、对象、null)信息都可以返回(undefined类型无需返回,本身无意义)在javascript里边函数return除了可以返回基本类型的信息,其还可以返回function函数。在javascript里边,一切都是对象
在一个函数内部,可以声明数值、字符串、布尔、对象等局部变量信息,言外之意就还可以声明函数(函数内部还要嵌套函数)变量信息,因为函数是对象,并且函数可以被return给返回出来。

值传递和引用传递:
值传递:

var a = 1;
var b = a;//数值与数值之间的传递

引用传递:

var fun = function(){console.log(11111);
}
var fun1 = fun();//对象之间的传递

七、函数调用

1、第一种方式:

函数名();

2、第二种方式:

(function(){})();

八、全局变量/局部变量
1、全局变量

 ① 在函数外部声明的变量② 函数内部不使用“var”声明的变量(函数调用之后起作用)

例如:

var a = 10;
function test(){b = 10;
}

2、局部变量:

javascript里边:在函数内部声明的变量,变量前边有”var”关键字。

九、数组
1、什么是数组(what):

有许多变量,它们的名称和数据类型都是一致的,把这些变量的集合称为“数组”。
(实际应用中数组内部各个元素的数据类型可以是不同的)

2、数组的声明:

三种方式:
① var arr = [元素,元素,元素。。。];
② var arr = new Array(元素,元素,元素。。。);
③ var arr = new Array();
arr[0] = 元素;
arr[1] = 元素;

3、获取数组的长度:

数组.length;

4、遍历数组:

① for循环 遍历    //适合遍历下标是0/1/2/3..等规则、连续的数组
② for-in遍历       //数组、对象都可以遍历,并且数组的下标没有具体要求

5、常用方法:

push() //在数组尾部增加一个元素
pop() //在数组尾部删除一个元素
indexOf() //从数组的第一个元素开始,判断一个元素第一次出现的位置
lastIndexOf()//从数组的最后一个元素开始,判断一个元素第一次出现的位置

十、字符串

定义:通过(单/双)引号把键盘上用于显示的一些信息给括起来,就是一个字符串
var  name = ‘JavaScript’;
var  addr  = “hello JavaScript”;

十一、eval

eval(参数字符串)
该eval可以把内部参数字符串当成表达式,在上下文环境中运行。
该eval()经常用于把其他用户传递过来的字符串信息转变为javascript的实体(对象、数组等)信息。
eval(参数字符串):参数要求必须符合js语法规则。

JavaScript教程之快速入门相关推荐

  1. Tomcat 教程之快速入门

    Tomcat 教程之快速入门 版本说明 本文使用 Tomcat 版本为 Tomcat 8.5.24. Tomcat 8.5 要求 JDK 版本为 1.7 以上. 简介 Tomcat 是什么 Tomca ...

  2. ArcGIS教程——ArcGIS快速入门

    实例数据:https://pan.baidu.com/s/184wwCmWrJdb-qjxsT614EQ 密码:dowv ArcGIS for Desktop是一套完整的专业GIS应用程序,包含有Ar ...

  3. tensorflow2.0教程- Keras 快速入门

    tensorflow2.0教程-tensorflow.keras 快速入门 Tensorflow 2.0 教程持续更新: https://blog.csdn.net/qq_31456593/artic ...

  4. SWMM从入门到实践教程 03 快速入门案例的设施参数设置与批量设置

    文章目录 1 雨量计 1.1 雨量计基础设置 1.2 雨量计数据来源 2 汇水区 2.1 参数讲解 2.2 设置结果 3 检查井 3.1 参数讲解 3.2 批量设置 4 管道 4.1 参数讲解 4.2 ...

  5. SWMM从入门到实践教程 02 快速入门案例的绘制

    文章目录 1 建模准备 2 设置各类设施 2.1 添加雨量计 2.2 添加子汇水区(正方形) 2.3 绘制节点(圆形) 2.4 绘制管渠 2.5 添加排水口(三角形) 3 画面调节 1 建模准备 建模 ...

  6. esp8266灯上电闪一下_【零知ESP8266教程】快速入门2-点亮外部LED灯

    [零知ESP8266教程]快速入门2-点亮外部LED灯 [复制链接] 一.工具原料 电脑,windows系统 ESP8266开发板 micro-usb线 LED灯1个 220Ω 电阻1个 面包板一个+ ...

  7. Python零基础入门教程( 快速入门)

    前言 学无止境,无止境学. 今天要给大家分享的是<Python零基础入门教程01 快速入门>,这是一个系列的教程,从零基础到项目实战.在本教程中,我会给大家介绍Python入门的一些基础知 ...

  8. Spring Boot 2.x基础教程:快速入门

    点击蓝色"程序猿DD"关注我哟 来源:http://t./ <Star最多的Spring Boot教程继续更新了> 牛皮吹过了! Git仓库和博客专题页也改版完成! 是 ...

  9. spring cloud入门_Spring Boot 2.x基础教程:快速入门

    简介 在您第1次接触和学习Spring框架的时候,是否因为其繁杂的配置而退却了?在你第n次使用Spring框架的时候,是否觉得一堆反复黏贴的配置有一些厌烦?那么您就不妨来试试使用Spring Boot ...

最新文章

  1. 分页,主要用于python django框架
  2. python3.6进度条_Python实现下载界面(带进度条,断点续传,多线程多任务下载等)...
  3. J.R.R.托尔金笔下的中土世界与《斗破苍穹》项目实践:从世界观解构入手场景设计
  4. 微信读书vscode插件_vscode 常用的插件
  5. P1742 最小圆覆盖
  6. 从十四五规划看 物联网(NB-IoT、Cat.1、5G)将何去何从?
  7. Magento 产品推荐 extension Featured products 2.0 – revamped!
  8. linux boot efi分区 容量,解决Ubuntu上由于/boot容量不足引起的无法更新系统
  9. Wine QQ2012 笔记
  10. 斐讯K2从第三方固件刷回原厂固件
  11. 清明上河图 HTML 代码
  12. Null check operator used on a null value
  13. INFO:ProjectMgmt - The selected process was not run because a prior process failed.的解决方案
  14. linux软键盘怎么调出来,软键盘怎么关?软键盘关闭方法
  15. 他“砍”了拼多多一刀!!!
  16. JavaScript改变图片大小
  17. [Vue-Treeselect Warning] Unloaded branch node detected. “loadOptions“ prop is required to load its
  18. 关于GPS 坐标系的那些事
  19. 弘辽科技:想做好标题优化,这些错误不能犯。
  20. c语言 最大公约数 最小公倍数的编程,C语言三种算法求解最大公约数与最小公倍数...

热门文章

  1. RDA8955烧写程序摘要
  2. 【Flask项目】项目准备之-创建模块的蓝图
  3. github:已经提交并push后再次追加提交
  4. SegAttnGAN: Text to Image Generation with Segmentation Attention 论文解读
  5. 【攻防世界017】re4-unvm-me
  6. 【僵尸复活】【已通过】https的app如何抓包
  7. 008 Android之Service
  8. MySQL触发器简介
  9. 【PHP】curl_init() 如何排错????
  10. Centos 7 上 查看MySQL当前使用的配置文件my.cnf的方法