一、JavaScript的组成:

  1. ECMAscript:JavaScript 已经由 ECMA(欧洲电脑制造商协会)通过 ECMAScript 实现语言的标准化。
  2. BOM:浏览器对象模型(Browser Object Model )
    对象:
window  窗口对象
   	 			location 地址栏对象
   	 			history   历史记录对象
   	 			screen   显示器对象
  1. DOM:文档对象模型(Document Object Model)是用于访问 HTML 元素的正式 W3C 标准。
    功能:控制HTML文档的内容
    代码:获取页面标签(元素)对象Element
    document.getElementById(“id值”):通过元素的id获取对象

二、Javascript书写位置:

  1. 内嵌式:在html页面中,嵌入script标签
    该标签可以放到head标签中或者body标签中,可以有多个。
  2. 外联式:用script标签的src属性引入外部的JS文件[推荐写法]
    ①.新建js文件
    ②.通过script标签引用到当前页面中

注意:
①.不能将代码写到外联式标签中。
②.一个网页中可以同时调用多个外部js文件

<script type="text/javascript" src="test.js"></script>
  <script type="text/javascript" src="test.js"></script>
  <script type="text/javascript" src="test.js"></script>
  <script type="text/javascript" src="test.js"></script>

特别注意:
如果一个script标签引入外部的JS文件,那么千万别再这个script标签里面写JS代码
3. 行内式:在标签上写JS代码(不推荐)
将js代码写到标签内部

<div onclick="js代码"  style="width:200px;"></div>

注意:
onclick 是一个点击事件: 当点击div的时候,会触发该事件,执行该事件中的代码。

三、JavaScript中输入输出消息方式

1.alert();//弹出框

  2.document.write('<h1>我是一段文字</h1>'); //在网页中输出信息

  3.prompt("请输入姓名","测试"); //输入框接收用户输入的【输入框】

  4.confirm("确定不听课么");//确认框

  5.console.log("adsadsfafds"); //在控制台中输出消息

四、js变量的定义

变量的定义和赋值

var a = 100;
var是英语“variant”变量的缩写。后面要加一个空格,空格后面的东西就是“变量名”,
  • 定义变量:var就是一个关键字,用来定义变量。
  • 所谓关键字,就是有特殊功能的小词语。
  • 关键字后面一定要有空格隔开。
  • 变量的赋值:等号表示赋值,将等号右边的值,赋给左边的变量。
  • 变量名:我们可以给变量任意的取名字。

注意:
1.创建变量的关键字是var var a=1;
2.创建变量可以不指定数据类型。
3.创建变量但是不赋值:var a; a创建出来的就是一个undefined未定义的数据类型。

五、基础数据类型

(参考:https://www.cnblogs.com/luckinlee/p/11621995.html)
1.数字(number)

#js中小数和整数丢都是数字类习惯
	var a=1;
	bar b=0.1;
#查看数据类型typeof,括号可以加,可以不加
	typeof(a);
	typeof b;
#小数点的保留
	var num = 2.379
	var newNum = num.toFixed(2)
	console.log(newNum)
#NaN是数字类型的一个关键字,意思是不是一个数字,但是他的数据类型也是number,布尔值为false
#Infinity是一个数字类型的关键字,意思是无限大的意思,他的Boolean的值为true

2.字符串string

#单引号和双引号都可以,都是字符串的表达方式

#.length,返回长度:注意length不用加括号,它是一个属性不是一个方法
	console.log(a.length)
	
#trim 去除字符串两边的空格
	var  str =  '     我的天呢     ';
	console.log(str.trim());//我的天呢
	
#cancat 拼接字符串值,用来两个或者多个字符串的值
	var str1 = 'alex';
	var str2  = 'sb';
	console.log(str1.concat(str2,str2));//alexsbsb
	
#charAt 返回指定索引位置的字符
	var str = 'alex';
	var charset = str.charAt(1);
	console.log(charset);//l
	
#indexOf/search 查找字符的下标,如果找到返回字符串的下标,找不到则返回-1 。
	var str = 'alex';
	console.log(str.indexOf('e'));//2
	console.log(str.indexOf('p'));//-1
	console.log(str.search('e'));//2
	console.log(str.search('p'));//-1
	
#slice(start,end) 切片。左闭右开 分割数组 接收负参数
	var str = '小马哥';
	console.log(str.slice(1,2));//马
	
#substr(start,length) 返回一个字符串:从指定位置开始,取指定字符数.
	var  str =  '我的天呢,a是嘛,你在说什么呢?a哈哈哈';
	console.log(str.substr(0,4));//我的天呢
	var  str =  '我的天呢,a是嘛,你在说什么呢?a哈哈哈';
	console.log(str.substr(9,6));
	var  str =  '我的天呢,a是嘛,你在说什么呢?a哈哈哈';
	console.log(str.substr(-3,3));
	
#substring(indexStart,indexEnd) 切子字符串。顾头不顾尾
	如果 indexStart 等于 indexEnd,substring 返回一个空字符串。
	如果省略 indexEnd,substring 提取字符一直到字符串末尾。
	如果任一参数小于 0 或为 NaN,则被当作 0。
	如果任一参数大于 stringName.length,则被当作 stringName.length。
	如果 indexStart 大于 indexEnd,则 substring 的执行效果就像两个参数调换了一样
	
#replace(a,b) 将字符串a替换成字符串b
	var a = '1234567755';
	var newStr = a.replace("4567","****");
	console.log(newStr);//123****755
	
#split('sep',n) 切割,根据n保留切割的数组长度
	var  str =  '我的天呢,a是嘛,你在说什么呢?a哈哈哈';
	console.log(str.split('a'));//["我的天呢,", "是嘛,你在说什么呢?", "哈哈哈"]  如果第二个参数没写,表示返回整个数组
	console.log(str.split('a',2));//["我的天呢,", "是嘛,你在说什么呢?"] 如果定义了个数,则返回数组的最大长度
	
#toLowerCase():全部变成小写:
	var str = 'EVA';
	console.log(str.toLowerCase());//eva
	
#toUpperCase():全部变成大写:
	var str = 'xiaomage';
	console.log(str.toUpperCase());

3.布尔值boolean

#true或者false 注意:首字母小写
var b1 = false;
console.log(typeof b1)
#在js代码中'',0,NaN,null,undefined的布尔值都是false

4.空元素

#空元素打印布尔值为false
#null表示值是空,一般在需要指定或清空一个变量时才会使用,如 name=null;
var c1 = null;//空对象. object
console.log(c1)

5.未定义类型

#undefined打印的布尔值为false
#undefined表示当声明一个变量但未初始化时,该变量的默认值是undefined。
还有就是函数无明确的返回值时,返回的也是undefined,
var d1;
//表示变量未定义:undefined
console.log(typeof d1)

6.object类型

#JavaScript 中的所有事物都是对象:字符串、数值、数组、函数...
此外,JavaScript 允许自定义对象
#示例:
var a='123456';
typaOf(a)//String
var b= new String('123456')
typeOf('b')//object
#通过new实例化出来的对象都是object类型,虽然看起来都是字符串但是打印的数据类型是不同的。
字符串,数字类型,数组等内置对象都是object类型