一、JavaScript简介(JS)

1、JS概述

1、JavaScript是现阶段最主流的编程语言之一,是一种运行在客服端(浏览器)的脚本语言,同时也是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。

2、脚本语言(Script):不需要进行编译,运行过程中由js引擎逐行来进行解释并执行。

3、JS也可以基于Node.js来进行服务端(后端)编程。

2、浏览器执行解释JS

浏览器分为两部分 :渲染引擎和JS引擎

l 渲染引擎:用于解析HTML+CSS,俗称内核,比如chrome浏览器的blink。

l JS引擎:也称为JS解释器。用于读取网页中的JavaScript代码,对其进行处理后运行。比如chrome浏览器的V8。

浏览器通过内置的JS引擎对JS代码逐行进行解释编译。

3、JS的组成

l ECMAScript(JS语法):

是由ECMA国际进行标准化的一门编程语言,ECMAScript规定了JS的编程语法和基础核心知识,是所有浏览器厂商共同遵守的一套JS语法工业标准。

l DOM(文档对象模型):

Document Object Model,简称DOM。是W3C组织推荐的处理可扩展置标语言的标准编程接口,通过DOM提供的接口来对页面上的各种元素进行操作(大小、位置、颜色等)。

l BOM(浏览器对象模型):

Browser Object Model,简称BOM。它提供了独立于内容的、可以于浏览器窗口进行互动的对象结构。通过BOM可以操作浏览器窗口,比如弹出框、控制浏览器跳转、获取分辨率等。

二、JS基础语法

1、JS输入输出函数

方法

说明

alert(msg)

浏览器弹出警示框

console.log(msg)

浏览器控制台打印输出信息

prompt(info)

浏览器弹出输入框,用户输入

(string类型)

2、变量

变量可以理解为存放数据的容器,便于操作存放在内存中的数据。

语法:

var 变量名

3、数据类型

JavaScript 是一种拥有动态类型的编程语言。不同于JAVA、C#这类后端语言,需要规定具体的数据类型。JavaScript 不用声明具体的数据类型,会在程序运行中被自动确定。

值类型

(基本类型):

字符串(String)、数字(Number)、布尔(Boolean)、空(Null)、未定义(Undefined)

引用类型

(对象类型):

对象(Object)、数组(Array)、函数(Function),还有两个特殊的对象:正则(RegExp)和日期(Date)

简单数据类型
1、string(字符串)
1)、字符串转义符 \
转义符

解释说明

\n

换行符

\\

斜杠 \

\’

‘单引号

\”

“双引号

\t

Tab 缩进

\b

空格

2)、字符串的长度以及拼接
length属性

用于获取字符串或数组长度

语法:

.length --返回长度

3)、字符串拼接
 多个字符串之间可以使用 + 进行拼接。

在拼接前,会将与字符串拼接的任何类型转换为字符串,再拼接为一个新字符串。

注:使用字符串进行拼接时 ‘’ 引号采用就近原则进行匹配。

2、boolean(布尔型)

布尔类型有true 和 false。

布尔型在与数值型进行拼接时,true为(1),false为(0)。

3、Undefined(未定义)

一个声明后没有被赋值的变量会有一个默认值(Undefined),表示未定义数据类型(基于JavaScript的变量的特性)。

4、Null(空)

表示为空(null),需与Undefined区别开。

l Typeof 可用来获取检测变量的数据类型
语法:

var numb = 12;

Console.log(typeof numb); // 返回结果为 number

4、数据类型转换

1\转换为字符串

方式说明

.toString()转换为字符串

String()强制转换

转换为字符串

+ ’ ’ 加号拼接字符串

和字符串拼接的结果都是字符串(隐式转换)

2\转换为数值型

方式说明

案例

parseInt(string)函数

将string类型转换为整数数值型

parseInt(‘35’)

parseFloat(string)函数

将string类型转换为浮点数值型

parseInt(‘23.65’)

Number()强制转换函数

将string类型转换为数值型

Number(‘12’)

js隐式转换(- * /)

利用算术运算隐式转换为数值型

‘12’ - 0

3\转换为布尔型

方式

说明

案例

Boolean()函数

将其他类型转换为布尔型

Boolean(‘true’)

l 代表空、否定的值会被转换为false ,如: ‘ ’ 、0、NaN、null、undefined。

l 其余值都会被转换为true。

二、JS函数

1、函数(function)

l 就是封装了一段可被重复调用执行的代码块。通过此代码块可以实现大量代码的重复使用。

l 函数可以带参数也可以不带参数

l 声明函数的时候,函数名括号里面的是形参,形参的默认值为 undefined

l 调用函数的时候,函数名括号里面的是实参

l 多个参数中间用逗号分隔

l 形参的个数需与实参个数匹配

2、函数的声明及调用

// 带参数的函数声明

function 函数名(形参1, 形参2 , 形参3...) { // 可以定义任意多的参数,用逗号分隔

// 函数体

}

// 带参数的函数调用

函数名(实参1, 实参2, 实参3...);

3、函数的返回值(return)

在使用 return 语句时,函数会停止执行,并返回指定的值,如果函数没有 return ,返回的值是 undefined。

// 声明函数

function 函数名(){

...

return  需要返回的值;

}

// 调用函数

函数名();  // 此时调用函数就可以得到函数体内return 后面的值

注:

return 语句之后的代码不被执行。

return 只能返回一个值。如果用逗号隔开多个值,则返回最后一个值。

break、continue、return 的区别:
l break : 结束当前循环体 (如 for、while)

l continue :跳出本次循环,继续执行下次循环 (如for、while)

l return :不仅可以退出循环,还能够返回 return 语句中的值,同时还可以结束当前的函数体内的代码

4、函数的Arguments对象

JS函数都内置了一个 arguments 对象,arguments 对象中存储了传递的所有实参。

arguments展示形式是一个伪数组,因此可以进行遍历。

伪数组具有以下特点:

①:具有 length 属性

②:按索引方式储存数据

③:不具有数组的 push , pop 等方法

三、JS作用域

1、概念

一段程序代码所作用的程序范围,而限定这段程序的可用性范围就是作用域。

2、作用域的分类

JavaScript (ES6前) 中的作用域有两种:

l 全局作用域 (作用在script 标签范围内)

l 局部作用域 (函数作用域)

3、变量的作用域

1)、全局变量
在全局作用域下,声明的变量叫做全局变量(在函数外部定义的变量)

l 全局变量,变量的整个<script>标签中都可以使用。

l 特殊情况下,在函数内不使用 var 声明的变量也是全局变量(不建议使用)

2)、局部变量
在局部作用域下,声明的变量叫做局部变量(在函数内部定义的变量)

l 局部变量只能在该函数内部使用

l 函数的形参实际上就是局部变量

3)、区别
 全局变量:在整个<script>标签中都可以使用,只有在浏览器关闭时才会被销毁,因此比较占内存

局部变量:只在函数内部使用,当其所在的代码块被执行时,会被初始化;当代码块运行结束后,就会被销毁,因此更节省内存空间

4、块级作用域(ES6)

块作用域由 {} 包括。在 {} 里面声明的变量不能在 {} 外调用。

ES6以前,JS没有块级作用域的概念。

四、JS预解析

1、概念:

JavaScript 代码是由浏览器中的 JavaScript 解析器来执行的。JavaScript 解析器在运行 JavaScript 代码的时候分为两步:

预解析;(JS引擎会把JS里面所有的 var 还有 function 提升到当前作用域的最前面)

代码执行。

注:预解析只会发生在通过 var 定义的变量和 function 上。

2、变量预解析(变量提升)

变量的声明会被提升到当前作用域的最上面,但变量的赋值不会被提升。

console.log(num); // 结果是多少?

var num = 10;

// 输出返回undefined

//相当于执行了以下代码

var num;    // 变量声明提升到当前作用域最上面

console.log(num); // 输出返回undefined

num = 10;   // 变量的赋值不会提升

3、函数预解析(函数提升)

1、概念:

函数的声明会被提升到当前作用域的最上面,但是不会调用函数。

2、函数表达式声明调用问题

函数表达式调用必须写在函数声明的下面。(因为函数表达式是通过变量的形式接收函数的,变量提升只提升变量,不提升赋值操作)

// 匿名函数(函数表达式方式):若我们把函数调用放在函数声明上面

fn();

var  fn = function() {

console.log('22'); // 报错

}

//相当于执行了以下代码

var fn;

fn();   //fn没赋值,没这个,报错

var  fn = function() {

console.log('22'); //报错

}

JavaScript简介(一)相关推荐

  1. JavaScript简介---JS基础

    JavaScript简介 JavaScript起源 早年间,人们上网都是使用速度很

  2. 前端:JS/16/JavaScript简介,lt;script标记,常用的两个客户端输出方法,JS注释,JS变量(声明,命名规则,赋值),变量的数据类型(数值型,字符型)

    JavaScript简介 1,JavaScript是什么? JavaScript是一种小型的,轻量级的,面向对象的,跨平台的客户端脚本语言. JavaScript是嵌入到浏览器软件当中去的,只要你的电 ...

  3. 网站开发综合技术 一 JavaScript简介 二JavaScript语法

    第1部分 JavaScript简介 1.JavaScript它是个什么东西? 它是个脚本语言,需要有宿主文件,他的宿主文件是html文件. 2.它与Java有什么关系? 没有什么直接联系,java是S ...

  4. JavaScript 简介 1

    JavaScript 简介 原文链接 JavaScript ( 简称:JS ) 是一种 轻量级,解释型 的编程语言,其函数是一等公民.众所周知,它是用于网页开发的脚本语言,但也被用在很多非网页环境中, ...

  5. JavaScript 简介第一课

    JavaScript 简介 JavaScript 是互联网上最受欢迎的编程语言之一,用于为网页添加交互性,处理数据,以及创建各种应用程序(移动应用程序,桌面应用程序,游戏等),这门语言可用于 HTML ...

  6. 前端JavaScript(1) --Javascript简介,第一个JavaScript代码,数据类型,运算符,数据类型转换,流程控制,百度换肤,显示隐藏...

    一.Javascript简介 Web前端有三层: HTML:从语义的角度,描述页面结构 CSS:从审美的角度,描述样式(美化页面) JavaScript:从交互的角度,描述行为(提升用户体验) Jav ...

  7. JavaScript - 简介

    JavaScript - 简介 JavaScript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型.它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端 ...

  8. JavaScript简介及JavaScript中的关键保留字、变量和数据类型

    1. JavaScript简介 JavaScript 诞生于 1995 年.它当时的目的是为了进行表单输入的验证.因为在 JavaScript 问世之前,表单的验证都是通过服务器端验证的.而当时都是电 ...

  9. 地球引擎初级教程——JavaScript 简介(一文读懂如何使用GEE)

    JavaScript 简介 在基于 Web 的 IDE 上的代码编辑器中编写的脚本必须使用 JavaScript 编写.JavaScript 是一种使用/学习的相当直接的编程语言.JavaScript ...

  10. JavaScript 简介 JavaScript 插入 HTML 页面后,可由所有的现代浏览器执行。

    JavaScript 简介 JS 教程 JS 实现 JavaScript 是世界上最流行的编程语言. 这门语言可用于 HTML 和 web,更可广泛用于服务器.PC.笔记本电脑.平板电脑和智能手机等设 ...

最新文章

  1. C语言实现大数运算(长整数的加、减、乘、除)
  2. 一文看透全球光伏“大跃进”发展历程
  3. 零基础学python需要多久-零基础学习Python大概要多久,感悟分享?
  4. pythonjoin函数所在包_Python中的join()函数
  5. pypthon3精要(11)-try,except,else异常处理
  6. 统计 表格_电商运营表格合集,运营统计绩效策划,全套excel表拿来就用
  7. 纪中C组模拟赛总结(2019.7.5)
  8. SQL Pass北京举办1周年活动(本次活动特别邀请到了来自微软的SQL Server大师何雷谈数据库职业规划)...
  9. day03 Python爬虫
  10. 隐藏activity的头部的activity名
  11. java ajax json 乱码_ajax请求返回200,json中文乱码怎么破?
  12. java实战——照片编辑器
  13. 购买周期 python-用Python实现一个基于EG协整法的跨周期套利策略
  14. 彻底禁止Win10自动更新工具Windows Update Blocker v1.5 汉化版
  15. PHP打出来的数字和成语,php批量将词语 成语 导入数据库
  16. pygame按键持续按下响应
  17. mysql 校验 身份证_MySql整理篇之身份证校验
  18. vue脚手架安装时出现Error EPERM operation not permitted这个错误
  19. 歹徒逃亡3——————刺杀行动
  20. 使用vuejs 2.x (不是nuxt) 做个demo: 使用 vuex, router ( store, action , mutation)

热门文章

  1. 2021全球与中国红外传感器芯片市场现状及未来发展趋势
  2. HummingBad恶意软件(介绍)
  3. mac抹掉磁盘重装系统未能与服务器取得联系_苹果电脑安装mac系统详细教程
  4. P6Spy配置信息说明
  5. 戏说 .NET GDI+系列学习教程(二、Graphics类的方法)
  6. 文章阅读:Dual Attention Network for Scene Segmentation
  7. pixhawk入门指南
  8. Unity ASE案例解析—Dissolve Burn(消融效果—镂空、自发光)
  9. 加盟店与直营店怎样进行会计核算?
  10. 【.Net实用方法总结】 整理并总结.NET 中的 System.IO.Pipelines(管道)