JavaScript入门

1.学习方式
Linux环境下
编辑器 vi
执行环境 nodejs
2.JavaScript介绍
1)js在浏览器中运行,进行表单验证,页面的局部更新(dom操作)
对浏览器的操作(bom操作)
2)js解释器:IE,网景推出的浏览器
浏览器具有js解释器:由于js解释器不统一,js标准不一样,存在兼容性问题
3)js是解释型语言,无需编译,直接运行在解释器上
而Java/c属于编译型语言,需要进行编译后,java–>.class 再运行到jvm .c–>.out再运行到linux
3.传统js构成
1)ECMAScript5 JavaScript标准
语法:变量、关键字、保留字、表达式、流程控制语句、对象、函数、数组…
2)DOM:Document Object Model 文档对象模型,浏览器厂商通过es5编写的控制html/css的代码
document.getElementById();
dom.addEventListener()
dom.attachEvent()
3)BOM:Browser Object Model 浏览器对象模型,浏览器厂商通过es5编写的控制浏览器的代码
alert();
setTimeout(function(){
//
},1000)
XMLHttpRequest(ajax)

	android/ios
	移动互联,前端的发展,android + H5,JS
	nodejs,google将浏览器中的JS解释器给掏出来。可以安装在任意的服务器端,并且nodejs中提供了大量的基础库,file、http,这个时候js具备服务器端能力
	在nodejs中,不存在兼容性问题,因为nodejs中压根没有dom/bom,因此,切记不要在nodejs中执行任何dom和bom代码。由于不存在兼容性问题,nodejs是可以大量发挥js高级标准,ES6语法一般在nodejs中可以完全运行

4.hello world
1)在nodejs中
1.通过vi编辑(es5)
2.通过nodejs来执行
2)在浏览器
1.通过vscode编辑(es5、dom、bom)
1)html
2)
一般script标签位于body之前
2.通过浏览器来执行

5.注释
html:
css:/**/
js://单行注释
/多行注释/

6.关键字和保留字

7.变量
1)js是弱类型语言
特点:1.变量的数据类型在初始化的时候确定
2.变量的数据类型可以随时发生改变
3.类型细分不明显
2)var
1.变量可以重复声明
var a = 3;
var a = “hello world”
2.变量声明会被提升(函数声明也会被提升)
console.log(a);
var a = 3;
3.var声明的变量没有局部作用域
function foo(){
if(true){
var a = 3;
console.log(“inner”,a);
}
console.log(“outer”,a);
}
foo();

8.数据类型
1)分类
1.基本数据类型
变量的值是保存在栈区

		Number
		var a = 2;
		var a = 2.1;
		var a = 0X10;
		var a = 010;
		typeof a; 'number'


	string
	var a = "hello world"
	var a = 'hello world'
	var a = `
				<ul>
				<li>terry</li>
				<li>tom</li>
				<li>larry</li>
				</ul>
				`;
	json字符串-对象
	var json = '{"name":"terry","age":12}'

Boolean
var a = true;
var a = false;

Null
var a = null;

Undefined
var a;
var a = undefined;

2.引用数据类型(指针)
	变量的引用地址保存在栈区,真正的值保存在堆区
	除了基本数据类型之外的所有其他数据类型被称为引用数据类型
	var a = {name:"terry",age:12}
	var a = [1,2,3,4,5,6,7]
	var a = function(){}
	var a = /[abc]def/i
2)类型检测
	typeof a
3)深拷贝和浅拷贝
	var a = {name:"terry",age:12}
	//浅拷贝【地址拷贝】
	var b = a;
	b.age++;
	console.log(a.age);
	//深拷贝【克隆】
	1.json对象->json->对象
	2.Object.assign({},a)
	3.lodash

	var a = 3;
	var b = a;
	b++;
	console.log(a);
4)其它
	1.NaN
		not a number
		var result = 10/'a'			//NaN
		console.log(isNaN(result));		//true
	2.Infinity\-Infinity
		无穷大
		var result = 10/0;		//Infinity
		var result = -10/0;		//-Infinity
		console.log(isFinite(result));		//false
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值