JavaScript入门(基础)
一、JS语言介绍
1.概述
- 浏览器脚本语言
- 可以编写运行在浏览器上的代码程序
- 属于解释性、弱语言类型编程语言
2.组成
- ES语法:ECMAScript、主要版本有ES5和ES6
- DOM:文档对象模型(Document Object Model),是W3C组织推荐的处理可扩展标准语言的标准编程接口。
- BOM浏览器对象模型(Browser Object Model),提供了独立于内容的、可以与浏览器窗口进行互动的对象结构,且由多个对象组成,其中代表浏览器窗口的Window对象是BOM的顶层对象,其他对象都是该对象的子对象。
二、JS的基本语法
1.三种存在位置(HTML中)
1.1行间式:存在于行间的时间中
<body id='bd' onload="body.style.backgroundColor='cyan'">
</body>
1.2内联式:存在于页面的script标签中
<body id ='bd'>
<style>
bd.style.backgroundColor='cyan';
</style>
</body>
- 一般情况下,内联可以放在
</body>下 或者</body>上,最终被解析在</body>上方 - 内联式也可以出现在
<head>标签底部,一般应用于依赖性JS库
1.3外联式:存在于外部JS文件,通过script标签的src属性链接
html文件:
<script src='js/test.js'></script>
js文件:
bd.style.backgroundColor='cyan';
<script src="js/02.js">
alert(123)
</script>
拥有src的外联script标签,会自动屏蔽标签内部的代码块
1.4总结
- 内联使用场景:某页面的特有逻辑,可以书写在该页面的script标签内
- 外联的使用场景:适用于团队开发,js代码具有复用性
- 出现在head标签底部:依赖型JS库;出现在body标签底部:功能型JS脚本
2.JavaScript注释
//单行注释
/*
多行注释
*/
3.变量的定义
3.1变量的命名规范
- 标识符由字母数字下划线,$组成,不能以数字开头(驼峰命名法)
- 标识符不能与关键字及保留字重名
- 区分大小写
保留字:
| abstract | arguments | boolean | break | byte |
| case | catch | char | class* | const |
| continue | debugger | default | delete | do |
| double | else | enum* | eval | export* |
| extends* | false | final | finally | float |
| for | function | goto | if | implements |
| import* | in | instanceof | int | interface |
| let | long | native | new | null |
| package | private | protected | public | return |
| short | static | super* | switch | synchronized |
| this | throw | throws | transient | true |
| try | typeof | var | void | volatile |
| while | with | yield |
3.2ES5定义变量
var num = 10; //无块级作用域变量
num = 10; //全局变量
3.3ES6定义变量
let num = 10; //局部变量
const NUM=10; //常量 常量名全大写 不允许修改
注:ES5标准下无块级作用域,只有方法可以产生实际的局部作用域
// 方法的自调用,就会产生一个局部的作用域
(function () {
var x=10;
y=20;
})()
ES6有块级作用域
4.三个基本弹出框
alert() //一个弹出框只能弹出一条消息,多个值,后面的值会被忽略
confirm() // 确认框 有返回值, true | false
prompt() //输入框 确定为输入值,取消为null
5.函数监测
typeof(100)
5.数据类型
5.1值类型
5.1.1数字类型Number
数值范围:-5e324 ~ 1.7976931348623157e+308超过范围,会显示为 Infinity(正无穷) 或 -Infinity(负无穷),不像其它语言,JS的数字类型包含了小数。
特殊的Number值 NaN:表示Not A Number,非数字类型
和任何值都不相等
与任何值运算,结果还是NaN
isFinite() //函数判断是否在范围内
isNaN() //函数 判读是否是 NaN
5.1.2字符串类型String
声明方式:
双引号
单引号
模板字符串(ES6新增)
content = `
打扎好,我寺${username}.
是兄弟,就来砍我
今晚八点,不见不散
`
//多行,${}方式 嵌入变量。 传统方式变量字符串连接必须用字符串连接符
5.1.3布尔类型Boolean true |false
var a = true;
console.log(a, typeof a);
5.1.4未定义类型Undefined
undefined 表示'缺少值'
var c = undefined
console.log(c,typeof c);
5.2引用类型
5.2.1函数类型function
var m = function(){
console.log(m,typeof m);
}
5.2.2对象类型:object
var obj = {};
console.log(obj,typeof obj);
obj = new Object();
//console.log(obj,typeof obj); //对象类型判断一般用instanceof
console.log(obj instanceof Object);
5.3具体的对象类型
5.3.1空对象:null
var o = null;
//console.log(o,typeof o);
//空的判断用==
console.log(o == null);
5.3.2数组对象:Array
o = new Array(1,2,3,4,5);
//console.log(o,typeof o);
//判断
console.log(o instanceof Array);
5.3.3时间对象:Date
o = new Date();
console.log(o,instanceof Date);
5.3.4正则对象:ReExp
o = new ReExp();
console.log(o, instanceof ReExp);
6.数据类型转换
6.1显示转换
//1.num,bool => str //String|toString
var a = 10;
var b=true;
var c =String(a);
c = a.toString();
//2.bool,str => num //Number |+?
var aa =true;
var bb = '10';
var cc = Number(aa);
cc = +aa; //'1' number
cc = +bb; //'10' number
//针对字符串 //parseFloat|parseInt
cc = parseFloat('3.14.15.16');
console.log(cc,typeof cc); //3.14 number
cc = parseInt('10.35abc');
console.log(cc,typeof cc); //10 number
//字符串以非数字开头,结果为NaN
//1.非数字类型
//2.不与任何数相等,包含自己
//3.通过isNaN()进行判断
var res = parseInt('abc10def');
console.log(res,isNaN(res));
6.2隐性转换
5 + null //5
'5' +null //'5null'
'5' +1 //'51'
'5' -1 //4
7.运算符
7.1算数运算符
- 加法运算符 +
- 减法运算符 -
- 乘法运算符 *
- 除法运算符 /
- 模运算符 %
- 负号运算符 -
- 正号运算符 +
- 递增运算符 ++
- 递减运算符 --
注:++/--在前先自身运算,再做其他运算,++/--在后先做其他运算,再自运算
//a = 5
var res = a++;
console.log('res:'+res+'a:'+a); //5 6
//a =5
var res = ++a;
console.log('res:'+res+'a:'+a); //6 6
7.2赋值运算符
前提:x=5,y=5
| 运算符 | 例子 | 等同于 | 运算结果 |
|---|---|---|---|
| = | x=y | 5 | |
| += | x+=y | x=x+y | 10 |
| -= | x-=y | x=x-y | 0 |
| *= | x*=y | x=x*y | 25 |
| /= | x/=y | x=x/y | 1 |
| %= | x%=y | x=x%y | 0 |
7.3比较运算符
前提:x=5
| 运算符 | 描述 | 比较 | 结果 |
|---|---|---|---|
| == | 等于 | x=="5" | true |
| === | 绝对等于 | x==="5" | false |
| != | 不等于 | x!="5" | fales |
| !== | 不绝对等于 | x!=="5" | true |
| > | 大于 | x>5 | false |
| < | 小于 | x<5 | false |
| >= | 大于等于 | x>=5 | true |
| <= | 小于等于 | x<=5 | true |
7.4逻辑运算符
前提:n=5
| 运算符 | 描述 | 例子 | 结果 |
|---|---|---|---|
| && | 与 | x=n>10&&++n | x=false,n=5(短路) |
| || | 或 | x=n<10||n-- | x=true,n=5(短路) |
| ! | 非 | x=!n | x=false,x=5 |
&&运算,有假即假,前面有假,后面不会被执行,称为短路||运算,有真,即真,前面为真,后面不执行 短路
7.5三目运算符(三元运算符)
expression ? sentence1 : sentence2
当expression的值为真时执行sentence1,否则执行 sentence2
var tq = prompt('天气(晴|雨)')
var res =tq =='晴'?'今天天气挺好':'请假回家';
console.log(res);
7.6其他运算符
- 条件运算符
?: typeof运算符 判断操作数类型delete运算符 删除对象属性或者数组元素void运算符 忽略操作数的值- 逗号运算符
, - 字符串连接
+
补:四种调试方式
- alert()
- console.log()
- document.write()
- 浏览器断点调试
JavaScript入门(基础)的更多相关文章
- JavaScript入门基础
JavaScript基本语法 1.运算符 运算符就是完成操作的一系列符号,它有七类: 赋值运算符(=,+=,-=,*=,/=,%=,<<=,>>=,|=,&=).算术运 ...
- JavaScript学习小结(一)——JavaScript入门基础
一.JavaScript语言特点 1.1.JavaScript是基于对象和事件驱动的(动态的) 它可以直接对用户或客户输入做出响应,无须经过Web服务程序.它对用户的响应,是采用以事件驱动的方式进行的 ...
- javascript入门基础知识
JavaScript介绍: 1. javascrip是互联网上最流行的脚本语言,可用于Web和HTML,更可广泛用于服务器.pc端.移动端. 2. javascript脚本语言: javascript ...
- js入门基础
JavaScript语言介绍 JavaScript的历史 诞生于1995年,最初名字叫做Mocha,1995年9月改为LiveScript.Netscape公司与Sun公司(Java语言的发明者)达成 ...
- javascript入门视频第一天 小案例制作 零基础开始学习javascript
JavaScript 是我们网页设计师必备的技能之一.我们主要用javascript来写的是网页特效.我们从零基础开始学习javascript入门. 但是,好的同学刚开始不知道怎么学习,接触js,因此 ...
- JavaScript基础——JavaScript入门(笔记)
JavaScript入门(笔记) JavaScript是一种轻量级.解释型的Web开发语言,该语言系统不是很庞杂,简单易学.由于所有现代浏览器都已嵌入JavaScript引擎,JavaScript源代 ...
- JavaScript RegExp 基础详谈
前言: 正则对于一个码农来说是最基础的了,而且在博客园中,发表关于讲解正则表达式的技术文章,更是数不胜数,各有各的优点,但是就是这种很基础的东西,如果我们不去真正仔细研究.学习.掌握,而是抱着需要的时 ...
- Markdown入门基础
// Markdown入门基础 最近准备开始强迫自己写博文,以治疗严重的拖延症,再不治疗就“病入骨髓,司命之所属,无奈何”了啊.正所谓“工欲善其事,必先利其器”,于是乎在写博文前,博主特地研究了下博文 ...
- JavaScript入门篇 编程练习
编程挑战 一.定义"改变颜色"的函数 提示: obj.style.color obj.style.backgroundColor 二.定义"改变宽高"的函数 提 ...
- 慕课网JavaScript入门篇课程笔记
1.js注释很重要 单行注释,在注释内容前加符号 “//”. <script type="text/javascript"> document.write(" ...
随机推荐
- iso data 聚类算法
isodata算法就是先拟定一个预期类,再选取一些聚类中心,通过不断合并或者分裂聚类,达到分类的目的 关键就是在于,如何分裂,合并 要合并或者分裂 必须要确定一些指标 所以第一步就是要确定 某些指标 ...
- instanceof关键字的理解
instanceof,两个单词组成,instance of,意为, "… 是 …的实例". 本身包含null值的判断.但是有不少人,先来个 obj != null,然后来个 obj ...
- 【XSY2666】排列问题 DP 容斥原理 分治FFT
题目大意 有\(n\)种颜色的球,第\(i\)种有\(a_i\)个.设\(m=\sum a_i\).你要把这\(m\)个小球排成一排.有\(q\)个询问,每次给你一个\(x\),问你有多少种方案使得相 ...
- mycat 使用
介绍 支持SQL92标准 支持MySQL.Oracle.DB2.SQL Server.PostgreSQL等DB的常见SQL语法 遵守Mysql原生协议,跨语言,跨平台,跨数据库的通用中间件代理. 基 ...
- NLP相关问题中文本数据特征表达初探
1. NLP问题简介 0x1:NLP问题都包括哪些内涵 人们对真实世界的感知被成为感知世界,而人们用语言表达出自己的感知视为文本数据.那么反过来,NLP,或者更精确地表达为文本挖掘,则是从文本数据出发 ...
- springBoot多数据源(不同类型数据库)项目
一个基于springboot的多数据源(mysql.sqlserver)项目,先看看项目结构,注意dao层 多数据源mysql配置代码: package com.douzi.robotcenter.c ...
- Ubuntu设置和查看环境变量
设置环境变量的三种方法 1.1 临时设置 export PATH=/home/yan/share/usr/local/arm/3.4.1/bin:$PATH 1.2 当前用户的全局设置 打开~/.ba ...
- expprt与环境变量
一.Windows 环境变量 1.在Windows 系统下,很多软件安装都需要配置环境变量,比如 安装 jdk ,如果不配置环境变量,在非软件安装的目录下运行javac 命令,将会报告找不到文件,类似 ...
- 第二十三节: EF性能篇(三)之基于开源组件 Z.EntityFrameWork.Plus.EF6解决EF性能问题
一. 开篇说明 EF的性能问题一直以来经常被人所吐槽,究其原因在于“复杂的操作在生成SQL阶段耗时长,且执行效率不高”,但并不是没有办法解决,从EF本身举几个简单的优化例子: ①:如果仅是查询数据,并 ...
- Geometric regularity criterion for NSE: the cross product of velocity and vorticity 2: $u\times \om\cdot \n\times \om$
在 [Lee, Jihoon. Notes on the geometric regularity criterion of 3D Navier-Stokes system. J. Math. Phy ...