JavaScript(JS)简介

历史背景介绍

(Brendan Eich)在其Netscape Navigator 2.0产品中开发出一套livescript的脚本语言.Sun和Netscape共同完成.后改名叫Javascript。

JavaScript的组成

  • ECMAScript :定义了js的语法标准: 包含变量 、表达式、运算符、函数、if语句 for循环 while循环、内置的函数,对象 (封装 继承 多态) 基于对象的语言.使用对象
  • 文档对象模型(DOM) Document object model :操作网页上元素的API。比如让盒子显示隐藏、变色、动画 form表单验证
  • 浏览器对象模型(BOM) Broswer object model:操作浏览器部分功能的API。比如刷新页面、前进后退、让浏览器自动滚动

JavaScript基础

js的引入方式

<!--内接式-->
<script type="text/javascript">

</script>

<!--外接式-->
<script type="text/javascript" src="../index.js">
<!--相当于引入了某个模块-->
</script>

  

注释

单行注释的快捷键ctrl+/.多行注释的快捷键是ctrl+shift+/

  

调试语句

alert(‘‘); 弹出警告框
console.log(‘‘);  控制台输出

  

变量的声明

在js中使用var关键字 进行变量的声明,注意 分号作为一句代码的结束符

var i=100

  

  • 定义变量:var就是一个关键字,用来定义变量。所谓关键字,就是有特殊功能的小词语。关键字后面一定要有空格隔开。
  • 变量的赋值:等号表示赋值,将等号右边的值,赋给左边的变量。
  • 一行可以声明多个变量.并且可以是不同类型
  • 变量命名,首字符只能是字母,下划线,$美元符 三选一,余下的字符可以是下划线、美元符号或任何字母或数字字符且区分大小写,x与X是两个变量
var colors = [‘red‘,‘green‘,‘yellow‘],name_k=‘w‘,age=20;
var $x=‘w‘

  

  • 变量要先定义,才能使用。比如,我们不设置变量,直接输出:
<script type="text/javascript">
console.log(a);
</script>

  控制台将会报错:

  • 变量不能使用JS保留字

JS保留字

JS基本数据类型

数值类型:number

如果一个变量中,存放了数字,那么这个变量就是数值型的,不区分整型数值和浮点型数值;

<script type="text/javascript">
			var a = 100; //定义了一个变量a,并且赋值100
			console.log(typeof a); //输出a变量的类型 使用typeof函数 检测变量a的数据类型number
			//特殊情况
			var b = 5 / 0;
			console.log(b); //Infinity 无限大
			console.log(typeof b); //number 类型
			var num = .1;
			console.log(num); //0.1
			console.log(typeof num); //number 类型
			var num = 1.3 ;
			console.log(num) ;//1.3
			console.log(typeof num); //number 类型
			var num = 10.;
			console.log(num) ;//10.0
			console.log(typeof num); //number 类型

		</script>
字符串类型(string):

是由Unicode字符、数字、标点符号组成的序列;字符串常量首尾由单引号或双引号括起;JavaScript中没有字符类型;常用特殊字符在字符串中的表达;
字符串中部分特殊字符必须加上右划线\;常用的转义字符 \n:换行 \‘:单引号 \":双引号 \\:右划线

	<script type="text/javascript">
			var a = "abcde";
			var b = "路飞";
			var c = "123123";
			var d = "哈哈哈哈哈";
			var e = ""; //空字符串
			var f = ‘\n\\‘;//回车+			console.log(f);
		</script>
连字符和+号的区别

键盘上的+可能是连字符,也可能是数字的加号。如下:

console.log("我" + "爱" + "你");   //连字符,把三个独立的汉字,连接在一起了
console.log("我+爱+你");           //原样输出
console.log(1+2+3);             //输出6

总结:如果加号两边都是数值,此时是加。否则,就是连字符(用来连接字符串)

布尔类型:boolean

boolean类型仅有两个值:true和false,也代表1和0,实际运算中true=1,false=0

	<script type="text/javascript">
			var isShow = false;
			console.log(typeof isShow);//boolean
			console.log(isShow);//false
		</script>

 

空对象:null
<script type="text/javascript">
			var c1 = null; //空对象. object
			console.log(typeof c1);
		</script>

  

未定义:undefined
<script type="text/javascript">
			var d1;
			//表示变量未定义
			console.log(d1);//undefined
		</script>

  

  

复杂(引用)数据类型

Function
Object
Arrary
String
Date

运算符

赋值运算符

以var x = 12,y=5来演示示例

逻辑运算符:

&&    ||  !

算术运算符:

+ - * / % ++ --

++i:先计算后赋值
i++:先赋值后计算
		<script type="text/javascript">
			var x=1,y=5;

			x=y++;
			console.log(x,y);//5,6
			x=++y;
			console.log(x,y);//7,7
			x=y--;
			console.log(x,y);//7,6
			x=--y;
			console.log(x,y);//5,5
		</script>

  

数据类型转换

将number类型转换成string类型
隐式转换
	<script type="text/javascript">
			var n1 = 1234;
			var n2 = ‘1234‘;
			var n3 = n1 + n2;
			// 隐式转换
			console.log(typeof n3);
			console.log(n3);//‘12341234‘
		</script>
强制转换
<script type="text/javascript">
// 强制类型转换String(),toString()
			var n1 = 1234;
			var n2 = String(n1);
			console.log(typeof n2);//string
			var n3 = n1.toString();
			console.log(typeof n3);//string
			console.log(n3);//‘1234‘
		</script>

  

将string类型转换成number类型
<script type="text/javascript">
			var stringNum = ‘789.123wadjhkd‘;
			var num2 = Number(stringNum);
			console.log(num2);//NaN  Not a Number 但是一个number类型
               //属于Number类型的一个特殊值,当遇到将字符串转成数字无效时,就会得到一个NaN数据
			// parseInt()可以解析一个字符串 并且返回一个整数
			console.log(parseInt(stringNum)); //789
			console.log(parseFloat(stringNum));//789.123
		</script>

  

任何的数据类型都可以转换为boolean类型
		<script type="text/javascript">
			var b1 = ‘123‘; //true
			var b2 = 0; //false
			var b3 = -123 //true
			var b4 = Infinity; //true
			var b5 = NaN; //false
			var b6; //false
			var b7 = null; //false
			//使用Boolean(变量) 来查看当前变量的真假
			console.log( Boolean(b1));
			console.log( Boolean(b2));
			console.log(Boolean(b3));
			console.log( Boolean(b4));
			console.log( Boolean(b5));
			console.log( Boolean(b6));
			console.log(Boolean(b7));

		</script>
	</body>

  

流程控制

if
	<script type="text/javascript">
			var age = 20;
			if(age > 18) {
				//{}相当于作用域
				console.log(‘可以喝酒‘);
			}
			alert(‘alex‘); //下面的代码照样执行
		</script>

  

if-else
	<script type="text/javascript">
			var age = 20;
			if(age > 18) {
				//{}相当于作用域
				console.log(‘可以去喝酒‘);
			} else {
				console.log(‘可以去喝水‘);
			}
			alert(‘alex‘); //下面的代码照样执行
		</script>

  

if-else if -else
<script type="text/javascript">
			var age = 18;
			if(age == 18) {
				//{}相当于作用域
				console.log(‘已经成人‘);
			} else if(age == 30) {
				console.log(‘该娶媳妇了!!‘);
			} else {
				console.log(‘随便你了‘)
			}
			alert(‘alex‘); //下面的代码照样执行
		</script>

  

逻辑与&&、 逻辑或||
//1.模拟  如果总分 >400 并且数学成绩 >89分 被清华大学录入
			//逻辑与&& 两个条件都成立的时候 才成立
			var sum = 420,
				math = 99;
			if(sum > 400 && math > 90) {
				console.log(‘清华大学录入成功‘)
			} else {
				alert(‘高考失利‘)
			}

			//2.模拟 如果总分>400 或者你英语大于85 被复旦大学录入
			//逻辑或  只有有一个条件成立的时候 才成立
			var sum = 550,
				english = 80;
			if(sum > 500 || english > 85) {
				alert(‘被复旦大学录入‘)
			} else {
				alert(‘高考又失利了‘)
			}

  

switch 语句
<script type="text/javascript">
			var gameScore = ‘good‘;

			switch(gameScore) {

				//case表示一个条件 满足这个条件就会走进来 遇到break跳出。break终止循环。如果某个条件中不写 break,那么直到该程序遇到下一个break停止
				case ‘good‘:
					console.log(‘玩的很好‘)
					//switch语句 case表示一个条件,满足这个条件就会输出,直到遇到break跳出,如果你的break不写,那么程序会遇到下一个break停止。这个就是‘case穿透’
					//break; //不加break,程序执行到case better,会输出‘玩的老牛逼了’
				case ‘better‘:
					console.log(‘玩的老牛逼了‘)
					break;
				case ‘best‘:
					console.log(‘恭喜你 吃鸡成功‘)
					break; 

				default:
					console.log(‘很遗憾‘)

			}
			//注意:switch相当于if语句 但是玩switch的小心case穿透
		</script>

  

while循环
<script type="text/javascript">
			// 例子:打印 1~9之间的数
			var i = 1; //初始化循环变量

			while(i <= 9) { //判断循环条件
				console.log(i);
				i = i + 1; //更新循环条件
			}
		</script>

  

for循环

for循环遍历列表是最常用的对数据的操作,在js中希望大家熟练使用for循环的书写方式

<script type="text/javascript">
			// 例子:输入1~100之间所有数之和
			var i, sum; //初始化变量

			for(i = 1, sum = 0; i <= 100; i++) { //for
				sum += i;

			}
			console.log(sum);
		</script>

  

for循环嵌套的练习
<script type="text/javascript">
			// 例子:1.在浏览器中输出直角三角形
			//*
			//**
			//***
			//****
			//*****
			//******
			var i, j; //初始化变量

			for(i = 1; i <= 6; i++) { //控制的行数
				for(j = 1; j <= i; j++) {
					document.write("*"); // 往浏览器文档中写*
				}
				document.write("<br>"); // 往浏览器文档中写<br>
			}

		</script>

  

for循环嵌套的练习二

实现乘法口诀表

<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style type="text/css">
			*{
				margin: 0;
				padding: 0;
			}
			div{
				margin: 10px;
			}
			span{
				margin: 5px;
				display: inline-block;
				border: red 2px solid;
				width: 60px;
				height: 30px;
				line-height: 30px;
				text-align: center;
				font-size: 14px;
			}
		</style>
	</head>
	<body>
		<div id=‘box‘></div>
		<script type="text/javascript">
			var oBox = document.getElementById(‘box‘);
			for (var i=1;i<10;i++){
				for(j=1; j<=i;j++){
					oBox.innerHTML += "<span>"+i+"*"+j+"="+i*j+"</span>"
				}
				oBox.innerHTML +="<br>"
			}

		</script>
	</body>
</html>

  

  

数组Array
//创建方式一
var colors = [‘red‘,‘green‘,‘yellow‘];
//创建方式二
var colors = new Array();
//通过下标进行赋值
colors[0] = ‘red‘;
colors[1] = ‘green‘;
colors[2] = ‘yellow‘;
console.log(colors);

  

			//数组的合并 concat()
			var north = [‘北京‘, ‘山东‘, ‘天津‘];
			var south = [‘东莞‘, ‘深圳‘, ‘上海‘];

			var newCity = north.concat(south)
			console.log(newCity) //[‘北京‘, ‘山东‘, ‘天津‘,‘东莞‘, ‘深圳‘, ‘上海‘]

			//join() 将数组中元素使用指定的字符串连接起来, 它会形成一个新的字符串
			var score = [98, 78, 76, 100, 101];
			var str = score.join("|")
			console.log(str); //"98|78|76|100|0"

			//slice(start, end); 切片,返回数组的一段记录, 顾头不顾尾
			var arr = [‘张三‘, ‘李四‘, ‘王文‘, ‘赵六‘];
			var newArr = arr.slice(1,3);
			console.log(newArr); //["李四", "王文"]

			//pop 移除数组的最后一个元素
			var arr = [‘张三‘, ‘李四‘, ‘王文‘, ‘赵六‘];
			arr.pop();
			console.log(arr); //["张三", "李四","王文"]

			//push() 向数组最后添加一个元素
			var arr = [‘张三‘, ‘李四‘, ‘王文‘, ‘赵六‘];
			arr.push(‘小马哥‘);
			console.log(arr); //["张三", "李四","王文","赵六","小马哥"]

			//shift() 移除数组第一个元素
			var arr = [‘张三‘, ‘李四‘, ‘王文‘, ‘赵六‘];
			arr.shift();
			console.log(arr); //["李四","王文","赵六"]

			//unshift() 向数组开头添加一个元素
			var arr = [‘张三‘, ‘李四‘, ‘王文‘, ‘赵六‘];
			arr.unshift(‘小马哥‘);
			console.log(arr); //["小马哥","张三", "李四","王文","赵六"]

			//reverse() 翻转数组
			var names = [‘alex‘, ‘xiaoma‘, ‘tanhuang‘, ‘angle‘];
			//反转数组
			names.reverse();
			console.log(names);

			//sort对数组排序
			var names = [‘alex‘, ‘xiaoma‘, ‘tanhuang‘, ‘abngel‘];
			names.sort();
			console.log(names); // ["alex", "angle", "tanhuang", "xiaoma"]
			//判断是否为数组: isArray()
			//布尔类型值 = Array.isArray(被检测的值);

  

字符串string

	<script type="text/javascript">
			//chartAt() 返回指定索引的位置的字符
			var str = ‘alex‘;
			var charset = str.charAt(3);
			console.log(charset); //x

			//concat 返回字符串值, 表示两个或多个字符串的拼接
			var str1 = ‘al‘;
			var str2 = ‘ex‘;
			console.log(str1.concat(str2, str2)); //alexex

			//replace(a, b) 将字符串a替换成字符串b
			var a = ‘1234567755‘;
			var newStr = a.replace("456", "****");
			console.log(newStr); //123****7755

			//indexof() 查找字符的下标, 如果找到返回字符串的下标, 找不到则返回 - 1。 跟seach() 方法用法一样
			var str = ‘alex‘;
			console.log(str.indexOf(‘e‘)); //2
			console.log(str.indexOf(‘p‘)); //-1

			//slice(start, end) 左闭右开 分割字符串
			var str = ‘小马哥‘;
			console.log(str.slice(1, 2)); //马

			//split(‘a‘, 1) 以字符串a分割字符串, 并返回新的数组。 如果第二个参数没写, 表示返回整个数组, 如果定义了个数, 则返回数组的最大长度
			var str = ‘我的天呢,a是嘛,你在说什么呢?a哈哈哈‘;
			console.log(str.split(‘a‘)); //["我的天呢,", "是嘛,你在说什么呢?", "哈哈哈"]

			//substr(statr, end) 左闭右开
			var str = ‘我的天呢,a是嘛,你在说什么呢?a哈哈哈‘;
			console.log(str.substr(0, 4)); //我的天呢
			//toLowerCase() 转小写
			var str = ‘XIAOMAGE‘;
			console.log(str.toLowerCase()); //xiaomage
			//toUpperCase() 转大写
			var str = ‘xiaomage‘;
			console.log(str.toUpperCase()); //XIAOMAGE
			//特别:

			//1.将number类型转换成字符串类型
			var num = 132.32522;
			var numStr = num.toString()
			console.log(typeof numStr)
			//四舍五入
			var newNum = num.toFixed(2)
			console.log(newNum)
		</script>

  

Math内置对象

<script type="text/javascript">
			//Math.ceil() 向上取整,‘天花板函数‘
			var x = 1.234;
			//天花板函数  表示大于等于 x,并且与它最接近的整数是2
			var a = Math.ceil(x);
			console.log(a); //2
			//Math.floor 向下取整,‘地板函数‘
			var x = 1.234;
			// 小于等于 x,并且与它最接近的整数 1
			var b = Math.floor(x);
			console.log(b); //1
			//求两个数的最大值和最小值
			//求 两个数的最大值 最小值
			console.log(Math.max(2, 5)); //5
			console.log(Math.min(2, 5)); //2
			//随机数 Math.random()
			var ran = Math.random();
			console.log(ran);//[0, 1)
			//如果让你取100-200之间的随机数,怎么做?
			//背过公式:min - max之间的随机数: min+Math.random()*(max-min);
			var ran = 100 + Math.random()*(200-100);
			console.log(ran);//[100 ,200)
		</script>

  

Date日期对象

创建日期对象只有构造函数一种方式,使用new关键字

//创建了一个date对象
var myDate = new Date();

<script type="text/javascript">
			//创建了一个date对象
			var myDate = new Date();
			//返回本地时间
			console.log(new Date().toLocaleString());//2018/11/26 下午10:33:41

			console.log(myDate.getFullYear().toString()+(myDate.getMonth()+1).toString()+myDate.getDate().toString());//20181126
		</script>

  

JSON

概念简介

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式。同时,JSON是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON数据不须要任何特殊的 API 或工具包。

在JSON中,有两种结构:对象和数组。

                       //对象
			var packJSON = {
				"name": "alex",
				"password": "123"
			};
			//一个对象以“{”开始,“}”结束,“key/value”之间运用 “,”分隔。

			//数组
			var packJSON = [{
				"name": "alex",
				"password": "123"
			}, {
				"name": "wusir",
				"password": "456"
			}];
			//数组是值的有序集合。一个数组以“[”开始,“]”结束。值之间运用 “,”分隔。

  

JSON对象和JSON字符串转换

在数据传输过程中,JSON是以字符串的形式传递的,而JS操作的是JSON对象,所以,JSON对象和JSON字符串之间的相互转换是关键。例如:

<script type="text/javascript" src="js/jquery-3.2.1.js" ></script>
		<script type="text/javascript">
			//JSON字符串:
			var jsonStr = ‘{"name":"alex", "password":"123"}‘;
			//JSON对象:
			var jsonObj = {
				"name": "alex",
				"password": "123"
			};
			//JSON字符串转换JSON对象
			var jsonObject = jQuery.parseJSON(jsonStr);
			console.log(jsonObject);
			//JSON对象转化JSON字符串
			var jsonstr = JSON.stringify(jsonObject);
			console.log(jsonstr);

  

遍历JSON对象和JSON数组
//遍历JSON对象代码如下:
			var packAlex = {
				"name": "alex",
				"password": "123"
			};

			for(var k in packAlex) { //遍历packAlex 对象的每个key/value对,k为key
				alert(k + " " + packAlex[k]);
			}
			//遍历JSON数组代码如下
			var packAlex = [{
				"name": "alex",
				"password": "123"
			}, {
				"name": "wusir",
				"password": "456"
			}];

			for(var i in packAlex) { //遍历packJson 数组时,i为索引
				alert(packAlex[i].name + " " + packAlex[i].password);
			}

  

原文地址:https://www.cnblogs.com/xiao-apple36/p/10013496.html

时间: 2024-07-28 14:14:40

JavaScript(JS)简介的相关文章

jquery.flot.js简介

JQuery图表插件之Flot Flot是一个Jquery下图表插件,具有简单使用,交互效果,具有吸引力外观特点.目前支持 Internet Explorer 6+, Chrome, Firefox 2+, Safari 3+ and Opera 9.5+ 等浏览器,是一个基于Javascript和Jquery纯客端户的脚本库,下面看一个简单的示例,先插入js: <script language="javascript" type="text/javascript&qu

01 Node.js简介, 安装&amp;配置

Node.js 简介 Node.js 是什么 Node.js 有着强大而灵活的包管理器(node package manager,npm) 目前, 已经有强大第三方工具模块, 例如数据库连接, 网站开发框架, CSS生成器, 操作系统API, 网络通信 等. Node.js 是什么 ? 是一个让 javascript 运行在服务器端的平台, 以前javascript只能运行在浏览器中,  node.js 可以解析 javascript. CommonJS 试图设计一套Javascript的规范.

Analytics.js简介

analytics.js JavaScript代码段是一种可用于衡量用户与您网站的互动情况的全新方式.它与之前的跟踪代码ga.js类似,但为开发者自定义实现方案提供了更大的灵活性. analytics.js代码段是Universal Analytics(目前处于公测阶段)的一部分.新用户应使用analytics.js.现有的ga.js用户应为analytics.js创建新的网络媒体资源并在他们的网站中进行两次代码实现.在同一页面上添加ga.js和analytics.js代码段并不会有任何安全问题

探秘Node.js(一)——Node.js简介及安装配置

1.Node.js 简介及特点: Node.js 是一个可以让 JavaScript 运行在服务器端的平台,它可以让JavaScript 脱离浏览器的束缚运行在一般的服务器环境下,就像运行 Python. Perl. PHP. Ruby 程序一样.我们可以用 Node.js 轻松地进行服务器端应用开发,Python. Perl. PHP. Ruby 能做的事 Node.js 几乎都能做,而且可以做得更好. Node.js 最大的特点就是采用异步式 I/O 与事件驱动的架构设计.对于高并发的解决方

Gulp.js简介

Gulp.js简介 我们讨论了很多关于怎么减少页面体积,提高重网站性能的方法.有些是操作是一劳永逸的,如开启服务器的gzip压缩,使用适当的图片格式,或删除一些不必要的字符.但有一些任务是每次工作都必须反复执行的.如 新图片或修改后图片的压缩 去除调试语句如console,debugger 合并和压缩css和js 把更新的文件部署到服务器 你可能设想大家都会记住所有的这些操作,但总会有人忘记一两条.随着项目越来越大,上面的工作越来越浪费时间.只好设专人来完成这些枯燥的工作. 能不能让这些工作不用

jquery.peity.js简介

jQuery简单图表peity.js [javascript] <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>无标题页</title> <script type="text/javascript" src="jQuery.js"></script> <script type="text/ja

03JavaScript程序设计修炼之道 2019-05-19_14-33-19--05-19_15-09-07 js简介与基本使用、变量与常量

es.md JavaScript程序设计修炼之道 -前置知识 html5+css3 -课程大纲 1.客户端原生js(es6/es7/..) 2.js常用库 jq等 3.服务端js(node/express/koa) 4.前端js框架(vue/react/..) ... -课程地位 学好js,走遍天下都不怕,是web前端或web全栈开发最重要最核心的技术,直接决定职业收入和发展 客户端原生javascript(es5/es6/es7/...) js简介与基本使用 html 标记语言 css jav

[Javascript]JS新API标准-地理定位(navigator.geolocation)

在新的API标准中,可以通过navigator.geolocation来获取设备的当前位置,返回一个位置对象,用户可以从这个对象中得到一些经纬度的相关信息. navigator.geolocation的三个方法: 1. getCurrentPosition() 2. watchPosition() 3. clearWatch() getCurrentPosition() 使用方法:navigator.geolocation.getCurrentPosition(successCallback,

jquery.easypiechart.js简介

此插件主要是用来统计新的访问.跳出率.服务器负载.使用的RAM等,功能很强大,带有HTML5的动画效果,效果非常炫,看效果吧easyPieChart一款新型的EASY饼图数据统计Jquery插件截图: 插件下载:https://github.com/rendro/easy-pie-chart/ jquery.easypiechart.js简介,布布扣,bubuko.com

jquery.sparkline.js简介

jQuery线状图插件Sparkline 官网地址:http://omnipotent.net/jquery.sparkline/ 文档地址:http://omnipotent.net/jquery.sparkline/#docs 下载地址:http://omnipotent.net/jquery.sparkline/#download jquery.sparkline.js简介,布布扣,bubuko.com