javascript零基础入门(小白)

1.js 历史
JavaScript 作为 Netscape Navigator 浏览器的一部分首次出现在 1996 年。它最初的设
计目标是改善网页的用户体验。
作者:Brendan Eich
期初 JavaScript 被命名为 LiveScript,后因和 Sun 公司合作,因市场宣传需要改名
JavaScript。后来 Sun 公司被 Oracle 收购,JavaScript 版权归 Oracle 所有。

2.浏览器组成
1.shell部分——用户能操作部分壳
2.内核部分——用户看不到的部分
1)渲染引擎(语法规则和渲染)
2)js引擎
3)其他模块(如异步)

3.js引擎
2001年发布ie6,首次实现对js引擎的优化。2008年Google发布最新浏览器Chrome,它是采用优化后的javascript引擎,引擎代号V8,因能把js代码直接转化为机械码来执行,进而以速度快而闻名。后Firefox也推出了具备强大功能的js引擎Firefox3.5 TraceMonkey(对频繁执行的代码做了路径优化)
Firefox4.0 JeagerMonkey

4.开始学习 js
js 三大部分 ECMAScript、DOM、BOM
如何引入 js?
1、页面内嵌标签,写 head 里面也行,写 body 里面也行
例:

<body>
<script type="text/javascript"> 
//告诉浏览器我们是 js
</script>
</body>

2、外部 js 文件,引入
例如:以 lesson.js 保存文件,再引入到 html 中
为符合 web 标准(w3c 标准中的一项)结构(html)、行(js)、样式(css)
相分离,通常会采用外部引入。
一个文件中可以包括多个 css,js——不混用
特殊写页面,大部分写在外部——不混用
如果同时写了内部的 js 和外部的 js,那么是外部的 js 文件显示出来

js 的逼格(特有特色)

编译型语言 解释性语言
怎么做 通篇翻译后,生成翻译完的文件, 程序执行翻译后的文件 看一行翻译一行,不生成特定文件
代表语言 C,C++ JS,PHP,python 带尖角号
优点 快(常用于系统,游戏) 可以跨平台
缺点 移植性不好(不跨平台,window 和Linux 不能混用) 稍微慢点

js 是解释性语言:(不需要编译成文件)跨平台
java 先通过 javac,编译成.class 文件,通过 jvm(Java 虚拟机)进行解释执行
.java→javac→编译→.class→jvm→解释执行(java 可以跨平台)(java 是 oak 语言)

是异步加载 单线程:同一时间只能做一件事——js 引擎是单线程 (同一时间做很多事叫多线程) ECMA(欧洲计算机制造联合会)标注:为了取得技术优势,微软推出了 JScript, CEnvi 推出 ScriptEase,与 JavaScript 同样可在浏览器上运行。为了统一规格 JavaScript 兼容于 ECMA 标准,因此也称为 ECMAScript。 js 是轮转时间片

在这里插入图片描述

主流浏览器(必须有独立内核)市场份额大于 3% 内核名称
IE trident
chrome webkit/blink
firefox gecko
opera presto
safari webkit

开始学习 js

js 三大部分 ECMAScript、DOM、BOM
如何引入 js?
1、页面内嵌标签,写 head 里面也行,写 body 里面也行

<body>
<script type="text/javascript"> 
//告诉浏览器我们是 js
</script>
</body>

2、外部 js 文件,引入
例如:以 lesson.js 保存文件,再引入到 html 中
为符合 web 标准(w3c 标准中的一项)结构(html)、行为(js)、样式(css)
相分离,通常会采用外部引入。
一个文件中可以包括多个 css,js——不混用
特殊写页面,大部分写在外部——不混用
如果同时写了内部的 js 和外部的 js,那么是外部的 js 文件显示出来

js 基本语法
1、变量(variable)
HTML,css 不是编程语言,是计算机语言,编程语言需要有变量和函数
变量是存放东西,方便后续使用的框
1)变量声明
1.声明、赋值分解
var a; 这个叫变量声明。我们向系统中申请了 var 这个框,命名叫 a 给 a 赋值 100,写作 a =100,这里不是等号是赋值
var a ;a =100;可以简化写成 var a=100;
2.单一 var 声明法

在这里插入图片描述

如写做:var a = 10;a=20;那么后面的 20 就会覆盖掉前面的 10
2)命名规则(用接近的英文单词)———— 起变量名一定要以英文语义化
1.变量名必须以英文字母、、$ 开头
2.变量名可以包括英文字母、
、$、数字
3.不可以用系统的关键字、保留字作为变量名

在这里插入图片描述

基本语法

下面是变量,例:var a = 10;
var b = 20;
var c;
c = a + b;
先运算等号右边的 a+b,运算完后,再赋值给左边 c
先取值,再赋值
运算大于赋值的优先级
js 是动态语言,动态语言基本上都是解释性语言,解释性语言基本上都是脚本语言
js 是浮点型语言(带小数点)
值类型(数据类型)
1、不可改变的原始值(栈数据)栈 stack
Number,String,Boolean,undefined,null
已经放进去的值不可改变,只会改房间编号为 null(硬盘原理)
Number 数字,例 var a = 123;
String 字符串,语言放双引号里,例 var a=”语言”,““是空串
Boolean 布尔数字,就两个值,false,true
undefined 是没有定义的,表示还没赋值,仅一个值 underfined
null 代表空,占位用,用空值来覆盖

例 var a =10;
var b = a;
a = 20;
document.write(b);
答案:10
原始值是我把一个值放到另一个值里面,改了第一个值,第二个值不变
2、引用值(堆数据)大致上放堆 heap 里面
array 数组, Object, function … data,RegExp 正则
var arr = [1,2,3,4,5,false,”abc”]; //这是数组
例:var arr = [1];
var arr1 = arr;
arr.push(2);
document.write(arr1);
答案:arr 是 1,2。arr1 是 1,2
引用值是把第一个值放到第二个值里面,改第一个值,第二个值也改变
js 由值决定类型。原始值和引用值唯一的不同是赋值形式不同

在这里插入图片描述
var a = 10;var b =a;是 a 先取出 10,copy 一份放到 b 里面,改变 a 的值,b 的值是不
变的,再把 a=20;时 b 的值还是 10,不发生改变
var arr = [1,2];var arr1 =arr;arr.push(3);
答案:这往[1,2]放 3,arr 和 arr1 都是[1,2,3]
引用值是在栈内存里面放堆的地址,拷贝的也是地址,所以改变 arr,arr1 也变了
var arr = [1,2]; var arr1 =arr; arr = [1,3]; document.write(arr1)
答案:arr = [1,3];是新建了一个新的房间。arr1 是 1,2,现在是插入新引入值”房间”,
会在堆里面重新申请一间房,并指向新房间

js 语句基本规则

1、语句后面要用分号结束“;”但 function test(){},for(){},if(){}后面都不用加分号
2、js 语法错误会引发后续代码终止,但不会影响其它 js 代码块
错误分为两种
1)低级错误(语法解析错误),不能写中文
2)逻辑错误(标准错误,情有可原,错的那个执行不了)
3、书写格式要规范,“= + / -”两边都应该有空格

发布了1 篇原创文章 · 获赞 4 · 访问量 196

猜你喜欢

转载自blog.csdn.net/XiaoYong0430/article/details/105269025