javascript介绍以及起源
目录
1.变量和常量的知识
2.基本数据类型
3.运算符
4.基本数据类型间的转换
5.流程控制语句

一、javascript介绍以及起源
	
	
	js一种直译型脚本语言,一种动态语言、弱类型语言、支持内置类型。它的解释器被称为javascript引擎。它浏览器的一部分。用于客户端的脚本语言,最早是html网页上使用用来给HTML增加动态效果。
	1995年,网景首次设计实现的 。因为网景跟sun合作的,因此才起名叫javascript,它除了语法风格跟java有点接近,其他跟java没有任何关系
	
	为了取得发展以及技术上的优势  微软曾推出过Jscript,跟javascript一样可以在浏览器上运行。为了统一规格,javascript兼容于ECMA标准,因此它也称为ECMAScript
	
	ECMA欧洲计算机联合商协会
	
	
	js用途
	1、嵌入文本到我们的HTML页面上
	2、对浏览器事件作出响应
	3、读写HTML
	4、在数据提交到服务器之前先做数据验证
	5、检测访客的浏览信息
	6、控制cookie
	7、基于nodeJs技术进行服务端的编程
	
	js组成部分
	1、ECMAScript规定核心的语法
	2、DOM(document object model):文档对象模型
	3、BOM(browser object model):浏览器对象模型
	
	
	二、javascrip的语法
	js可以有几种写法:
	1、写在script标签内
	2、写在外部js文件里面
	3、写在标签内部的
	
	三、标识符和关键字
	1、什么是标识符:
	/*
         * 标识符
          *     - 在JS中所有的可以由我们自主命名的都可以称为是标识符
          *     - 例如:变量名、函数名、属性名都属于标识符
          *     - 命名一个标识符时需要遵守如下的规则:
          *         1.标识符中可以含有字母 、数字 、下划线_ 、$符号
          *         2.标识符不能以数字开头
          *         3.标识符不能是javascript中的关键字或保留字
          *         4.标识符一般都采用驼峰命名法
          *             - 首字母小写,每个单词的开头字母大写,其余字母小写
          *             helloWorld  xxxYyyZzz
          * 
          *     - JS底层保存标识符时实际上是采用的Unicode编码,
          *         所以理论上讲,所有的utf-8中含有的内容都可以作为标识符
          */
         /*
2、常用的标识符格式:
	i j
	xxx_zzz
	_xxxx
	$xxx
	a1
	aaaBbbCcc
	AaaBbbCcc
	!!!!注意一点:标识符不要跟关键字同名,数字不允许作为首字母出现,这样我们js比较容易的区分开标识符和数字
	
	3、关键字:
	关键字是指我js语言中有特定含义,称为js语法中一部分的 那些单词
	var let const for if foreach break continue do while switch....
	4、保留字:
	未来某个js版本会称为关键字的单词,一样是不可以当成变量名或者方法名来使用
	5、注释:
	//:单行注释
	/**/:多行注释
	
	
	
	四、js的数据类型
	数据类型 就是我可以了解到的是描述数据的类型
	
	js基本的数据类型 :数字类型,字符串型,布尔型,undefined,null
	对象类型 数组 
	
	1、数字类型(Number)
	只有一种数字类型,数字 可以是小数 ,也可以的整数
	以0开头 默认使用8进制来表示我的这个数字
	以0x开头 默认使用16进制来表述我的这个数字
	如果以-开头 默认以负数
	如果我带有e:以科学计数法来解析我的这个数字
	
	
	2、字符串型(string)
	字符串是存储字符的变量,用来表示文本的数据类型,程序中的字符串是包含单引号/双引号的,由单引号来界定我双引号中包含的字符串 反过来
	es6模板字符串("`")
	
	3、布尔类型(boolean)
	
	一般是用在流程控制语句中,字符串和数字类型都是无穷多个,然而我们的布尔数据类型只有两个:true 和 false
	这两个个值一般用于说明某个事物是真或者假
	js一般用布尔类型来比较所得到的结果
	
	4、null(空)
	null
	关键字null是一个特殊的值,它表示变量为空值,用来定义空的或者是不存在的引用。
	如果试图去引用一个没有定义的值,就会返回一个null。
	这里注意一点:null并不等于"" 或者0
	
	5、undefined(未定义)
	这个值表示变量不含有值,没有定义的值,或者被定义了一个不存在的属性值
	
	
	!null和undefined区别:
	null它表示一个变量被赋予一个空值,而undefined是表示变量还没有被赋值
	

	五、运算符
	
	用于执行程序代码运算,会针对一个以上操作数来进行
	
	1、算术运算符
	
	
	+   -   *   /   %  ++  --
	
	
	字符串拼接使用“+”
	
	2、比较运算符
	
	<
	>
	==
	!=
	<=
	>=
	=== 全等于:将数值以及数据类型一并比较
	!==不全等于:将数值以及数据类型一并比较
	
	3、赋值运算符
	=
	+= 
	
	-=
	*=
	/=
	%=
	a=a+2;==>a+=2
	a=a-2;==>a-=2
	a=a*2;==>a*=2
	a=a/2;==>a/=2
	a=a%2;==>a%=2	
	
	4、逻辑运算符
	 &&  全真为真
	||  一个为真就是真
	
	!  取反
	
	
	逻辑短路
	
	
	5、三元运算符(三目运算符)
	表达式1?表达式2:表达式3
	
	当我的表达式1成立时  执行表达式2  否则执行表达式3
	
	
	
	六、数据类型间转换
	1、显示数据类型转换
		1.1转数字类型:
		1.Number():可以将任意类型的参数转换为数字类型,遵循以下规则:
		1、如果它是一个布尔值true和false将被分别转成1和0;
		2、如果它是以个数字,返回它本身
		3、如果是null,返回0;
		4、如果是undefined,返回NaN
		5、如果是一个字符串:
			1)如果这个字符串只包含数字,则直接将它转成10进制数字(忽略前面的0)
			2)如果有有效浮点格式,将它转成一个浮点数值
			3)如果是空字符串,转换为0
			4)如果以上都不符合==>NaN
	
		2.parseInt(string,num):可以解析一个字符串,返回一个整数
		
		1)忽略字符串前面所有的空格,直到找到第一个非空字符为止
		2)如果第一个字符不是数字或者“-” 直接返回NaN
		3)如果第一个字符是数字,它解析到遇到的第一个不是数字的字符为止
		
		
		4)如果上面解析完结果是以0开头,就将它当成一个八进制来解析
		5)如果以0x开头,则当成十六进制来解析。
		6)如果我指定了num参数,那么 它就以num进制来解析
		
		3.转字符串类型:
		1.String():将任意的一个类型的值转换为字符串,遵循一下下规则:
		1)如果是null,==>"null"
		2)如果是undefined ==>"undefined"
		
		
		toFied(num):可以把Number类型四舍五入为指定小数位的字符串。
		返回的字符串,num保留小数位
		
		
		
		Boolean():如果这个值是空字符串("")、数字零(0)、undefined或者null 会返回false,否则返回true
		!空格并不是空字符串
		
	2、隐式数据类型转换
		js的数据类型非常弱的,在使用算术运算符的时候,运算符两边的数据类型可以是任意的  这是因为js的引擎它在代码运行之前偷偷把数据类型进行转换 ,这种转换我们称之为隐式转换
	
	流程控制语句:
	if语句
	if(条件){
		函数体
	}
	
	if else语句
	if(条件){
		函数体1
	}else{
		函数体2
	}
	
	if.....else if......else语句
	if(条件1){
		
	}else if(条件2){
		
	}else if(条件n){
		
	}else{
		
	}
	switch语句:多分支语句
	
	switch(变量){
		case a:
		.....
		break;
		case b:
		.....
		break;
		case c:
		...
		break;
		........
		default:
			....
			break;
	}
	
	循环结构:
	1、while循环:先判断条件 当条件成立 再执行
	while(循环成立条件){
		....
	}
	
	2do...while循环:不论条件成不成立 先执行一遍 再判断
	do{
		.....
	}while(循环成立条件)

	3、for循环
	4、for in循环
	
	continue:
	跳过当前循环,直接进入循环的下一个步骤
	
	break:
	结束循环