javascript基础

1. 初识 javascript
(1)javascript 的历史来源

​ 94年网景公司 研发出世界上第一款浏览器。

     95年 sun公司  java语言诞生
 
     网景公司和sun合作。

​ Java+script ===> javascript

(2)W3c 规范

​ ☞结构标准 html

​ ☞表现标准 css

​ ☞行为标准 js

(3)JavaScript 和 ECMAScrip t的关系

​ ECMAScript是一种由Ecma国际前身为欧洲计算机制造商协会,英文名称是European Computer Manufacturers Association,制定的标准。

​ JavaScript是由公司开发而成的,公司开发而成的一定是有一些问题,不便于其他的公司拓展和使用。所以欧洲的这个ECMA的组织,牵头制定JavaScript的标准,取名为ECMAScript。

​ 简单来说ECMAScript不是一门语言,而是一个标准。符合这个标准的比较常见的有:JavaScript、Action Script(Flash中用的语言)就是说,你JavaScript学完了,Flash中的程序也会写了。

​ ECMAScript在2015年6月,发布了ECMAScript 6版本,语言的能力更强。但是,浏览器的厂商不能那么快的去追上这个标准。这些新的特性,我们就业班的深入,也会给大家介绍。

(4)今天的JavaScript:承担更多责任

​ 2003年之前,JavaScript被认为 “牛皮鲜”,用来制作页面上的广告,弹窗、漂浮的广告。什么东西让人烦,什么东西就是JavaScript开发的。所以浏览器就推出了屏蔽广告功能

​ 2004年JavaScript命运开始改变了,那一年谷歌公司,开始带头使用Ajax技术了,Ajax技术就是JavaScript的一个应用。并且,那时候人们逐渐开始提升用户体验了

​ 2010年的时候,人们更加了解HTML5技术了,HTML5推出了一个东西叫做Canvas(画布),工程师可以在Canvas上进行游戏制作,利用的就是JavaScript

​ 2011年,Node.js诞生,使JavaScript能够开发服务器程序了

​ 现在,公司都流行WebApp,就是用网页技术开发手机应用。什么意思呢?手机系统有iOS、安卓、windows phone、鸿蒙。好处是不用招聘那么多工程师,只需要几个前端开发工程师即可,并且也易于迭代

2. javascript 介绍

​ ◆js是一款运行在客户端的网页编程语言。

​ ◆组成部分

       ★ecmascript  js标准 
   
       ★dom     通过js操作网页元素
   
        ★bom     通过api操作浏览器

​ ◆特点

       ★简单易用
   
       ★解释执行

​ ◆编译执行 java c# 转化为.dll可执行文件==>电脑读取.dll可执行文件

◆基于对象

◆面向过程

​ ◆作用

​ ★表单验证

​ ★轮播特效

​ ★开发游戏

3. javascript 书写位置

​ ◆内嵌式

<script type="text/javacritpt">
	alert('hello world');
</script>

​ ◆外链式

<script type="text/javacritpt" src="1.js"></script>

​ ★先创建一个外部JS文件

​ ★通过src将外部js调用。

​ ◆写js代码的时候,分号不能省略。

​ ◆推荐将JS代码写在html结束标签后边

​ 将多个JS文件合成为一个JS文件

4. 输出消息的几种方式
(1)alert

​ 在页面弹出一个对话框,早期JS调试使用

alert('hello world');
(2)confirm()

​ 在页面弹出一个对话框, 常配合if判断使用

confirm('hello world');
(3)console.log()

​ 将信息输入到控制台,用于js调试

console.log('hello world')
(4)prompt()

​ 弹出对话框,用于接收用户输入的信息

prompt('请输入您的银行卡号')
(5)document.write()

​ 在页面输出消息

document.write('hello <br> <strong> world </strong>')
(6)转义字符
字符 含义
" 转双引
' 转单引
\n 转换行
\r 转回车
(7)注释

​ 快捷键 ctrl+/

​ 单行注释 //

​ 多行注释 /* */

5. 变量

​ 会变化的量。

​ 变量是用来存储数据的容器。

(1)定义变量
var hello;

​ ◆给变量赋值

hello="world";

​ “=”是赋值运算符

​ ◆定义并赋值

var hello="world";

​ ◆变量集体声明

var n1=1,n2=2,n3=3;
(2)变量的命名规范

​ ◆不能以数字或者纯数字开头来定义变量名

​ ◆不推荐使用中文来定义变量名

​ ◆不能使用特殊符号或者特殊符号开头(-除外)

​ ◆不推荐使用关键字和保留字来定义变量名

​ ★在JS中严格区分大小写的!!!

6. 数据类型
(1)简单数据类型

​ ◆Number 数字类型

      包含正数  负数  小数 

​ 能表示的最大值是±1.7976931348623157乘以10的308次方

​ 能表示的最小值是+5乘以10的-324次方

​ 数字类型的表达方式:

​ ★十进制表示法

var n1=23;

​ ★十六进制表示法

​ 从0-9,a(A)-f(F)表示数字。以0x开头

var n4=0x4323

​ ★八进制表示法

​ 0开头,0-7组成

var n5=0472;

​ ◆字符串 String

​ 凡是用双引号或者单引号引起的都是字符串

var n6="hello world"
var n7="321"

​ ◆布尔数据类型 Boolean

​ 只有2个值一个是true, 一个是false. 实际运算中true=1,false=0

var n1=2;
var n2=3;
alert(n1==n2);	//false
alert(n1<n2);	//true

​ ◆undefined 变量未初始化

​ 定义了变量,没有给变量赋值

var n1;
alert(n1);

​ ◆null 变量未引用 值为空 object

var n2=null;
(2)复杂数据类型

​ ★ object 对象

​ ★ array 数组

7. 判断数据类型

​ typeof()

n1=2
alert(typeof(n1));
8. 比较运算符

​ < > <= >= == !=

9. 算术运算符

​ ◆+ 加号

​ ★两个数字类型的变量相加,得到的是一个数字类型。

      ★一个数字类型和一个字符串相加,得到的是一个字符串。

​ ◆— 减号

​ ★两个数字类型的变量相减,得到的是一个数字类型。

      ★一个数字类型和一个数字字符串相减,得到的是一个数字类型。
  
      ★一个数字类型和一个非数字字符串相减,得到的是NaN,是一个数字类型

​ NaN, not a number

​ ◆/ 除号

     ★两个数字类型的变量相除,得到的是一个数字类型。
 
     ★一个数字类型和一个数字字符串相除,得到的是一个数字类型。
 
     ★一个数字类型和一个非数字字符串相除,得到的是NaN,是一个数字类型。   

​ ★0做为除数的时候,得到结果 Infinity (无限大),是一个数字类型。

​ ◆% 取余数

​ ◆优先级 有 () 先计算 () 里边的

10. 带操作的赋值运算
var n1=2;
var n2=3;
n1+=n2;		//n1=n1+n2
alert(n1);
运算符 示例 等价于
+= a+=b a=a+b
-= a-=b a=a-b
*= a*=b a=a*b
/= a/=b a=a/b
11. 对象
(1)Date() 对象

Date 对象用于处理日期和时间

var mydate=new Date();		//通过new方法创建对象
alert(Date());			//返回一个完整的日期时间
alert(mydate.getDay());//返回当前是周几“
alert(mydate.getMonth()+1);//返回当前月份
alert(mydate.getFul1Year());//返回当前年份
alert(mydate.getHours());//返回当前小时
alert(mydate.getMinutes());//返回当前分钟
alert(mydate.getSeconds());//返回当前秒数
(2) Math 对象

​ ◆Math.ceil() 天花板函数 向上取整

var n1=Math.ceil(n2);

​ ★如果是整数,取整之后是这个数本身

​ ★如果是小数,对数进行向上舍入

​ ◆Math.floor() 地板函数

var n1=Math.floor(n2);

​ ★如果是整数,取整之后是这个数本身

       ★如果是小数,对数进行向下舍入

​ ◆Math.max()

var n1=Math.max(n2,n3);

​ ◆Math.min()

var n1=Math.min(n2,n3);

​ ◆Math.pow()

var n1=Math.pow(n2,n3);

​ ◆Math.round()

var n1=Math.round(n2,n3);

​ ◆Math.random()

var n1=Math.random(n2,n3);
12. 数据类型转换
(1)数字类型转字符串

​ String()

var n1=String(n1);

​ 变量 .toString()

var n2=n1.toString();
(2)字符串转数字类型

​ ◆Number

var n2=number(n1);	//将字符串转换成数字

​ ★数字类型的字符串,转换之后得到的数字

         ★非数字字符串,转换之后得到是NaN
 
         ★小数类型的字符串,转换之后得到的是原数字

​ ◆parseInt

var n2=parseInt(n1);	//将字符串转数字

​ ★整数数字类型的字符串,转换之后得到的整数数字。

​ ★数字开头的字符串,转换之后得到的是前边的数字。

​ ★非数字开头的字符串,转换之后得到的是NaN。

​ ★小数类型的字符串,转换之后取整。

​ ◆parseFloat

​ ★整数数字类型的字符串,转换之后得到的整数数字。

​ ★数字开头的字符串,转换之后得到的是前边的数字。

​ ★非数字开头的字符串,转换之后得到的是NaN。

​ ★小数类型的字符串,转换之后得到的是原数字

(3)转布尔类型

​ Boolean()

var n2=Boolean(n1);

​ ★数字和字符串转完之后为true。

​ ★undefined、null、0转完之后为false

(4)隐式数据类型转换

​ 在运算过程中,程序自己进行的数据转换(程序员没有操作)

(5)逻辑运算符

​ 逻辑运算只有2个结果,一个为 true ,一个为 false

​ ◆且 &&

​ ★两个表达式为 true 的时候,结果为 true.

​ ◆或 ||

​ ★只要有一个表达式为 true ,结果为 true

​ ◆非 !

​ ★和表达式相反的结果

(6)等号运算符

​ “=”赋值运算符

​ “==”只判断内容是否相同,不判断数据类型

​ “===”不仅判断内容,还判断数据类型是否相同

​ != 只判断内容是否不相同,不判断数据类型

​ !==不全等于 不仅判断内容是否不相同,还判断数据类型是否不相同

(7)自增自减

​ i++ ++i

​ ◆在不参与运算的情况下,i++和++i都是在变量的基础加1

var n1=123;
n1++;		//n1=n1+1;
alert(n1);

​ ◆在参与运算的情况下

var n1=123;
var n2=n1++;
alert(n2);
alert(ni);
13. 条件状语从句
(1)if else 条件判断
If(条件表达式){
	如果条件表达式结果为true,执行该处代码。 如果条件表达式结果为false,执行下边代码。  
}else{
	如果条件表达式结果为false,执行该处代码。
}
(2)if else 嵌套
If(条件表达式){
	如果条件表达式结果为true,执行该处代码。下边代码不执行。如果为false,执行下边代码。
}else  If(条件表达式){
	如果条件表达式结果为true,执行该处代码。下边代码不执行。如果为false,执行下边代码。
}else  If(条件表达式){
	如果条件表达式结果为true,执行该处代码。下边代码不执行。如果为false,执行下边代码。
}else{
	如果上边条件表达式结果都为false,执行该处代码。
}
(3)三元表达式
n1%2==0?alert("偶数"):alert("奇数");
(4)Switch 语句
Switch(变量){
	case 1:
		如果变量和1的值相同,执行该处代码
	break;
	case 2:
		如果变量和2的值相同,执行该处代码
	break;
	case 3:
    	如果变量和3的值相同,执行该处代码
    break;
    default:
    	如果变量和以上的值都不相同,执行该处代码
    break;
}

​ ★switch后边的变量和case后边值的数据类型必须保持一致

var fruit=prompt("请输入您喜欢吃的水果");
switch(fruit){
	Case "苹果":
    	alert("您喜欢吃的是苹果");
    break; //阻断代码执行
    case "香蕉":
    	alert("您喜欢吃的是香蕉");
    break;
    case "葡萄":
    	alert("您喜欢吃的是葡萄");
    break;
    default:
    	alert("口味真重");
    break;

​ ◆Switch语句可以对变量进行集体判断:

switch(fruit){
    case"苹果"case"香蕉"case"葡萄"//case值的集体声明
    	alert("您喜欢吃水果");
    break;
    default:
    	alert("口味真重");
    break;
}
(5)While 循环
While(条件表达式){
   只要条件表达式结果为true,循环一直执行,当条件表达式结果为false的时候,循环终止
}

​ While循环语句需现在循环体外定义变量

(6)Do while
Do{
	循环体代码;首先执行该循环体代码一次。如果while后边的表达式结果为true,该循环体会一直循环。如果结果false,该循环终止。
}while(条件表达式)

​ ◆do while 比while循环多循环一次

var n1=1;
var n2=5;
do{
	alert("n1>n2");
}whie(n1>n2)
(7)for 循环
for(定义变量;条件表达式;自增自减){
	循环体代码
}

​ 执行顺序:

​ ◆首先定义变量

​ ◆如果条件表达式结果为true的时候,执行for循环里的代码,如果为false,循环体代码终止执行

​ ◆先执行变量和条件表达式循环一次,再执行自增自减

(8) break 语句

​ 在循环体内,只要代码遇到break,程序立马结束当前循环

​ 当前循环指的是break语句所在的循环体

//将1-10之间2的倍数输出到控制台
for(var i=1; i<=10; i++){
	if(1%2==0){
		console.log(i);
		break;
	}
}
(9)continue 语句

​ Continue语句指的是跳出本次循环,该语句后面的代码不再执行,整个循环体继续循环

for(var n1=1; n1<=10; n1++){
	if(n1==6){
		continue;
	}else{
		console.log(n1);
	}
}
14. 数组
(1)定义
var ary=new Array();	//通过创建对象的方式创建数组
var ary1=[];			//直接创建一个空数组
(2)赋值
var ary1=[];
ary1[0]=123;
ary1[1]=456;
(3)数组的初始化和遍历
var ary1=[1,2,3,"hello","你好"];		//初始化
//遍历
for(var i=0; i<5; i++){
	alert(ary1[i]);
}
(4)数组数据的个数 length 属性
var ary=[1,'2','3a',4,5,6,7,8]
for(var i=0; i<ary.length; i++){
	alert(ary[1]);
}
(5)数组合并

​ 使用concat方法合并数组

var ary1=[1,2,3,4,5,6,7,8];
var ary2=[1,3,5,7,9];
var ary3=ary1.concat(ary2);
alert(ary3);
(6)Join 方法

​ 返回一个字符串数组

var ary1=[1,2,3,4,5,6,7,8];
var ary2=ary1.join("&");
alert(ary2);
alert(typeof(ary2));
15. 函数

​ ☞函数(方法)定义

​ 类里面定义的函数才叫方法

 通过 function  关键字

​ 和自定义方法名 既可定义一个函数:

function test(){
	alert('hello world');
}

函数的调用

function test(){
	alert('hello world');
}
test();

javascript基础
https://everysunday.github.io/2022/02/25/javascript基础/
作者
T-River
发布于
2022年2月25日
许可协议