JavaScipt基础


JavaScipt基础

一、JavaScipt介绍

1.1JavaScript编程语言

1.2发展历史

1.3JavaScript和HTML、CSS

1.4JavaScript的组成

1.4.1ECMAScript-JavaScript的核心

1.4.2BOM-浏览器对象的模型

1.4.3BOM-文档对象模型

1.5JS学习状况

二、入门

2.1如何写一段JS代码并运行

2.1.1写在行内

2.1.2写在script标枪中

2.1.3写在外部js文件中,在页面引入

2.2变量

2.2.1什么是变量

2.2.2 如何使用变量

2.2.3变量的命名规则和规范

2.2.4案例

2.2.5代码调试(输出变量)

2.3数据类型

2.3.1简单数据类型

2.3.2复杂数据类型

2.4注释


一、JavaScipt介绍

1.1JavaScript编程语言

JavaScript,简称JS,是一种客户端脚本语言,主要用来向HTML网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。

可以直接嵌入HTML页面,但写成单独的js文件有利于结构和行为的分离。

在绝大多数浏览器的支持下,可以在多种平台下运行(如Windows、Linux、Mac、Android、iOS等)

JS主要运行于客户端(浏览器),也可以运行在服务端(操作系统)

JavaScript 和 Java 是两种不同的编程语言:JavaScript主要用于客户端,Java用于服务端。

JavaScript现在的意义(应用场景)

JavaScript 发展到现在几乎无所不能。

  1. 网页特效 *
  2. 服务端开发(Node.js) *
  3. 命令行工具(Node.js)
  4. 桌面程序(Electron)
  5. App(Cordova)
  6. 控制硬件-物联网(Ruff)
  7. 游戏开发(cocos2d-js)

1.2发展历史

1994年Netscape公司推出免费版本浏览器 Netscape Navigator(网景浏览器1.0) 1995年微软公司发布 Internet Explorer 1.0。 1995年网景公司为适应市场变化,需要开发一门专门在浏览器运行的脚本语言,这个任务交给了布兰登,为了应付公司安排的任务, 他只用10天时间就提交了工作,并将这门语言命名为 LiveScript; 后来为了蹭sun公司java的热度,与sun公司合作,将其临时改名为“JavaScript”; 1996年8月,微软模仿JavaScript开发了一种相近的语言,取名为JScript,首先内置于IE 3.0 1997年7月,ECMA组织发布ECMAScript 1.0版; 此后,明争暗斗不断,1998年6月,ECMAScript 2.0版发布,1999年12月,ECMAScript 3.0版发布; 2007年10月,ECMAScript 4.0版草案发布,2008年7月中止ECMAScript 4.0的开发,并发布3.1版本; 会后不久,ECMAScript 3.1就改名为ECMAScript 5。 2011年6月,ECMAscript 5.1版发布,现在使用最为广泛的版本 版发布,现在使用最为广泛的版本; 2015年6月,ECMAScript 6正式发布,并且更名为“ECMAScript 2015”; 随后,ECMA组织决定,每年发布一个升级版本,以年号来代替版本号,如:ECMAScript 2016、ECMAScript 2017;

        另外: 1996年,样式表标准CSS第一版发布; 1997年,DOM模式第一版正式应用,目前的通用版本是DOM3,下一代版本DOM 4正在拟定中。 1999年,IE5部署了XMLHttpRequest接口,允许JavaScript发出HTTP请求; 2001年,提出了JSON格式,用于取代XML格式。 2002年,Mozilla项目发布第一版Firefox。 2003年,苹果公司发布了Safari浏览器的第一版。 2006年,jQuery函数库诞生 2007年,Webkit引擎在iPhone手机中得到部署; 2008年,为Chrome浏览器而开发的V8编译器(解析引擎)诞生; 2009年,基于V8解析引擎的Node.js项目诞生,迎来前后端JS的霸权时代; 2009年,Google发布Chrome OS 2009年,Google发布Angular框架; 2013年,Mozilla基金会发布手机操作系统Firefox OS,该操作系统的整个用户界面都使用JavaScript; 2013年5月,Facebook发布UI框架库React; 2014年,尤雨溪发布开源前端开发库Vue.js; 2015年3月,Facebook公司发布了 React Native项目;

1.3JavaScript和HTML、CSS

  1. HTML:提供网页的结构,提供网页中的内容
  2. CSS: 用来样式排版、美化网页
  3. JavaScript: 可以用来控制网页内容,给网页增加动态的效果

1.4JavaScript的组成

ECMA 欧洲计算机制造联合会; ECMAScript 是一套标准,定义了一种语言的标准,规定了基本语法、数据类型、关键字、具体API的设计规范等,解析引擎设计的参考标准,但与具体实现无关;

1.4.1ECMAScript-JavaScript的核心

ECMAScript是一套语法标准,描述了JavaScript语言的基本语法和数据类型,是JavaScript的核心。 ES5 ES6

1.4.2BOM-浏览器对象的模型

一套操作浏览器功能的API

通过BOM可以操作浏览器窗口,比如:弹出框、控制浏览器跳转、获取分辨率等

1.4.3BOM-文档对象模型

一套操作页面元素的API

DOM可以把HTML看做是文档树,通过DOM提供的API可以对树上的节点进行操作

1.5JS学习状况

我们在学习JS时,需要学习的内容分为两部分,语言结构宿主环境提供的API;

语言结构部分主要时语言规则及内置对象;

而宿主环境的API,根据宿主环境不同而不同,以浏览器为例(js还可以运行在服务器/操作系统),最常见的三个类型: 浏览器控制类、DOM操作类、网络控制类;

总结:

JavaScript编程语言简称 JS,是一种嵌入式的脚本语言,应用范围及其广泛,由布兰登-艾奇开发,在20+年的发展中历经沧桑,学习 JS 分为语言规则及宿主环境两部分;

二、入门

2.1如何写一段JS代码并运行

2.1.1写在行内

01.html:
<input type="button" value="按钮" οnclick="alert('Hello World')" />

2.1.2写在script标枪中

02.html:
<head>
  <script>
    alert('Hello World!');
  </script>
</head>

2.1.3写在外部js文件中,在页面引入

03.html:
<script src="main.js"></script>

main.js:

alert('Hello World!');

注意点: 引用外部js文件的 script 标签中不可以再写JavaScript代码,即使写了也不会执行,没有作用

2.2变量

2.2.1什么是变量

1.什么是变量

变量是计算机内存中存储数据的标识符,根据变量名称可以获取到内存中存储的数据

2.为什么使用变量

使用变量可以方便的获取或者修改内存中的数据

2.2.2 如何使用变量

  • var声明变量

var age;

  • 变量的赋值

var age;
age = 18;

  • 同时声明多个变量

var age, name, sex;
age = 10;
name = 'zs';

  • 同时声明多个变量并赋值

var age = 10, name = 'zs';

2.2.3变量的命名规则和规范

  • 规则 - 必须遵守的,不遵守会报错

    • 由字母、数字、下划线、$符号组成,且不能以数字开头
    • 区分大小写
    • 不能是关键字和保留字,例如:for、while。

  • 规范 - 建议遵守的,不遵守不会报错

    • 变量名必须有意义
    • 遵守驼峰命名法。(首字母小写,后面单词的首字母需要大写。例如:userName、userPassword)
  • 下面哪些变量名不合法
  1. 1
    age18
    18age
    name
    $
    $name
    _sex
    &sex
    theworld 
    theWorld

name变量名,本身不是保留字/关键字, 建议少用。 name在有的浏览器中,是自动声明过的。

2.2.4案例

  1. 交换两个变量的值

var a = '1';
var b = '2';
//  借助第三个变量
var c = a;
a=b;
b=c;
console.log(a,b);

  1. 不使用临时变量,交换两个数值变量的值

//第二种方式
var num1 = 10;
var num2 = 20;
//计算的方式:累加,然后相减
num1 = num1 + num2;//num1的结果是30
num2 = num1 - num2;//num2的结果是10
num1 = num1 - num2;//num1的结果是20
console.log(num1);
console.log(num2);

2.2.5代码调试(输出变量)

  1. alert 弹框 :浏览器页面弹框

var num1 = 10;
alert(num1);

  1. console.log() 浏览器console控制台

var num1 = 10;
var num2 = 20;
console.log(num1);
console.log(num1, num2);

  1. document.write() 浏览器页面中

var num1 = 10;
document.write(num1);

2.3数据类型

2.3.1简单数据类型

Number、String、Boolean、Undefined、Null

获取变量的类型

typeof

var age = 18;
console.log(typeof age);  // 'number'

Number类型

  • 数值字面量:数值的固定值的表示法(数值直接量)
  1. 1024 60.5
  • 浮点数(小数)
  • 浮点数的精度问题

浮点数
    var n = 5e-324;   // 科学计数法  5乘以10的-324次方 
浮点数值的最高精度是 17 位小数,但在进行算术计算时其精确度远远不如整数
   var result = 0.1 + 0.2;    // 结果不是 0.3,而是:0.30000000000000004
   console.log(0.07 * 100);
   不要判断两个浮点数是否相等

  • 数值范围
  • Number.MIN_VALUE,// 这个值为: 5e-324  5乘以10的-324次方
    最大值:Number.MAX_VALUE,// 这个值为: 1.7976931348623157e+308
    无穷大:Infinity
    无穷小:-Infinity

String类型

'abc' "abc" 单双引号引起来的一连串字符

  • 字符串字面量(直接量)
  • 程序猿,程序媛, "黑马程序猿"

思考:如何打印以下字符串。  我是一个 "正直" 的人   我很喜欢 "黑马 '程序猿' "

注: 转义后单双引号 只能 就近和转义后的单双引号进行配对

  • 转义符

注: \b 退格符 \f又叫走纸或进纸或 换页符

var s = '我很喜欢   \"黑马  \'程序猿\'  \"';
console.log(s);

  • 字符串长度

length属性用来获取字符串的长度

var str = '黑马程序猿 Hello World';
console.log(str.length);

  • 字符串拼接

字符串拼接使用 + 连接

console.log(11 + 11);
console.log('hello' + ' world');
console.log('100' + '100');
console.log('11' + 11);
console.log('male:' + true);

  1. 两边只要有一个是字符串,那么+就是字符串拼接功能
  2. 两边如果都是数字,那么就是算术功能。

Boolean类型

  • Boolean字面量: true和false,区分大小写
  • 计算机内部存储:true为1,false为0

Undefined和Null

  1. undefined表示一个声明了没有赋值的变量,变量只声明的时候值默认是undefined
  2. null表示一个空,变量的值如果想为null,必须手动设置

注: 关于undefined和null是一个面试中很容易被问到的问题

2.3.2复杂数据类型

Object 对象:保存很多数据的一种数据类型后面详解;

题外话

如何使用谷歌浏览器,快速的查看数据类型?

字符串的颜色是黑色的,数值类型是蓝色的,布尔类型也是蓝色的,undefined和null是灰色的

console.log('ss',2,null,undefined,true);

2.4注释

被注释的内容是不执行的,不管什么内容都不会运行;

单行注释

用来描述下面一个或多行代码的作用

// 这是一个变量
var name = 'hm';

多行注释

用来注释多条代码

/*
var age = 18;
var name = 'zs';
console.log(name, age);
*/

总结:

JS代码的书写,变量的声明方式,数据类型,注释;

JavaScipt基础(持续更新)相关推荐

  1. C++基础(持续更新)

    注意:标红字加 * 为重点内容,黑体字加 * 为可选内容 目录 前言 一.第一课 1.入门写代码流程(注意:所有符号都用英文符号!!) 2.注释 (机器不读给人读) 二.第二课(理论知识) 1.计算机 ...

  2. python基础(持续更新)

    本文参考 廖雪峰Python教程 https://www.python-course.eu/python3_variables.php python基础教程 https://docs.python.o ...

  3. CM3基础(持续更新)

    CM3基础 操作模式和特权级别 参考Cortex-M3操作模式和特权级别 总结 系统有两种模式,handler模式和线程模式,前者始终位于特权级(用于处理异常),后者有特权和用户级两种.特权级别能够访 ...

  4. javase基础持续更新

    - QQ 1274510382 Wechat JNZ_aming 商业互捧 QQ群538250800 技术搞事 QQ群599020441 技术合作 QQ群152889761 加入我们 QQ群64934 ...

  5. JavaScipt基础(持续更新二)

    JavaScipt基础 六.JS中特殊的对象-数组 6.1数组的创建 6.2获取数据元素 6.3遍历数组 6.4为数组修改添加元素 6.5数组操作案例 七.函数 7.1函数的声明及调用 7.1.1声明 ...

  6. pwn学习总结(四)—— 堆基础知识(持续更新)

    pwn学习总结(四)-- 堆基础知识(持续更新) 前言 chunk 使用中(分配后) 空闲中(释放后) 堆块大小 空间复用 bins fastbin unsorted bin small bin 前言 ...

  7. pwn学习总结(二) —— 基础知识(持续更新)

    pwn学习总结(二) -- 基础知识(持续更新) Canary PLT表&GOT表 格式化字符串漏洞 GCC编译参数 ASLR 危险函数 输入流 syscall条件 shellcode 其它 ...

  8. webpack1.x环境配置与打包基础【附带各种 “坑“ 与解决方案!持续更新中...】

    webpack1.x环境配置与打包基础[附带各种 "坑" 与解决方案!持续更新中...] 参考文章: (1)webpack1.x环境配置与打包基础[附带各种 "坑&quo ...

  9. 微服务基础知识点学习笔记(持续更新)

    微服务基础知识点学习笔记(持续更新) Conrtoller层 整体包括:HTTP协议,JavaWeb三大组件(filter.servlet.listener).SpringMVC(SpringMVC的 ...

最新文章

  1. clover 主题_Clover主题更换
  2. 使用before、after伪类制作三角形
  3. JS JAVASCRIPT 判断两个日期相隔多少天
  4. 鸿蒙os 芯片制程,华为Mate50将如期发布,屏下镜头+鸿蒙OS,再见iPhone12
  5. zookeeper分布式安装与配置
  6. Eclipse断点种类
  7. 原子性 - synchronized关键词
  8. matlab的基本使用
  9. 集成电路模拟版图入门-版图基础学习笔记(五)
  10. 系统集成项目管理工程师(软考中级)—— 第七章 知识产权 笔记分享
  11. 高速系统设计自学笔记——信号完整性6
  12. HTML小游戏4 —— 简易版英雄联盟(附完整源码)
  13. 为FishBot模型注入物理属性并在Gazebo中显示
  14. idea提示“No suitable licenses associated with account balabala”
  15. 自制网页(仿B站)前端开源程序
  16. 明日之后八级房怎么造?明日之后好看的八级房蓝图造型汇总
  17. 上海交通大学计算机学院录取分数线,湖南省多少名可以进上海交大?附上海交通大学近三年录取分数线...
  18. 弱校联萌十一大决战之如日中天A Ariel【二进制+排序】
  19. flowable集成spring boot ----任务监听器
  20. Chino with Equation

热门文章

  1. js如何修改对象的padding属性
  2. Android8.1系统添加屏幕左侧边缘向右滑退出当前页面功能
  3. turtle绘画,设置画布的背景图片
  4. HDU6598 Harmonious Army
  5. 读书笔记:《招聘面试新法》
  6. 《宣龙教育》加密网课视频下载
  7. java计算机毕业设计智友少儿编程学习平台源码+mysql数据库+系统+部署+lw文档
  8. ZOJ 1516 Uncle Tom's Inherited Land
  9. 水星路由器DNS服务器未响应,用手机设置水星(mercury)路由器WiFi的步骤
  10. IU酒店释放轻中端投资活力,开启曲靖酒店新篇章