JS(一)初识JavaScript

1.初识JavaScript

1.1.什么是JavaScript

JavaScript ( JS ) 是一种具有函数优先的轻量级、解释型或即时编译型的编程语言。虽然它是作为开发Web 页面的脚本语言而出名的,但是它也被用到了很多非浏览器环境中,例如 Node.jsApache CouchDBAdobe Acrobat。JavaScript 是一种基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式和声明式(如函数式编程)风格。

1.2.JavaScript的组成部分(面试题)

  • ECMAScript,描述了该语言的语法和基本对象。

  • 文档对象模型(DOM),描述处理网页内容的方法和接口。

  • 浏览器对象模型(BOM),描述与浏览器进行交互的方法和接口。

JavaScript是一个编程语言,允许用户在浏览器页面上完成复杂的事情。浏览器页面并不总是静态的,往往显示一些需要动态更新的内容,交互式地图,动画,以及视频等。一个完整的JavaScript包括核心(ECMAScript),应用程序编程接口即API (比如DOM(Document Object Model),BOM(Browser Object Model)),以及其他第三方API。JavaScript与HTML、CSS一同配合共同完成一个复杂页面的显示。

特点:

  • 客户端代码,在客户机上执行;也可以作为服务器端代码执行,但是需要搭建Node环境。 执行前无需编译
  •  在浏览器上运行      
  •  解释性语言
  •  被内置于浏览器或者Nodejs平台中的js解析器解析执行,执行前无需编译
  •  弱类型语言
  •  从上往下顺序解析执行  

2. js组成

1) ECMAScript【js标准】(兼容性100%) (类似于CoreJava,制定了基础的语法)

注释 // 、/**/

变量

操作符

流程控制语句

数组

对象

函数

正则表达式

...

所有的js解释器都可以兼容ECMAScript

2) DOM:Document Object Model文档对象模型

js操作html的api

是针对XML但经过扩展用于HTML的应用程序编程接口。DOM将整个页面映射成一个多节点结构。

var dom=document.getElementsByTagName(“input”);

var dom=document.getElementById(“input_name”);

dom.οnclick=function(){}

js语言:基础语法、基础库、扩展库(jQuery DOM库)

3) BOM:Browser Object Model 浏览器对象模型

js操作浏览器的api

开发人员可以使用BOM控制浏览器显示的页面以外的部分。弹出新浏览器窗口;移动,缩放,关闭浏览器的功能;提供浏览器详细信息的navigator对象;提供浏览器所加载页面的详细信息的location对象;提供用户显示器分辨率详细信息的screen对象;对cookies的支持;支持XMLHttpRequest,IE中的ActiveXObject自定义对象

alert()/prompt()/confirm()

setInterval(),setTimeout()

XMLHttpRequest

Ajax

这里需要注意的是,只有ECMAScript是标准,也就是在绝大多数浏览器以及js解析器(node)中运行效果相同,但是DOM与BOM是各大浏览器厂商自己提供的API,在使用上大同小异,但是也可能会出现少许不兼容的情况

3.js特点

1) 解释型语言

js -> nodejs(js解释器)

2) 弱类型语言

变量的数据类型取决于值的数据类型

var a ;

a = 2; // a的数据类型为number

a = true; // a的数据类型为boolean

3) 顺序解释执行

4) 既可以作为前端脚本语言,也可以作为后端语言,取决于应用平台(浏览器/操作系统)和使用的框架(dom、jquery/http、mysql、file)

4.在body和head中使用JavaScript的区别

body部分中的JavaScript会在页面加载的时候被执行,在head部分中的JavaScript会在被调用的时候才执行。

因为浏览器解析html是从上到下的。如果把JavaScript放在head里的话,则先被解析,但这时候body还没有解析,所以会返回空值。一般都会绑定一个监听,当全部的html文档解析完之后再执行代码

windows.onload = function(){
    // 这里放执行的代码
}

这就说明了,如果我们想定义一个全局对象,而这个对象是页面中的某个按钮时,我们必须将其放入body中,道理很明显:如果放入head,那当你定义的时候,那个按钮都没有被加载,可能获得的是一个undefind。一般习惯将JavaScript放在body的最后面,类似last-child。

5.关键字与保留字

关键字:(在js中有特殊功能)

break   do   try   typeof   case   else  new  var  catch  finally  return  void  continue  for  switch  while  debugger  this  function  with  default  if  throw  instanceof  delete  in

保留字:(将来可能成为关键字)

abstract  enum  int  short  boolean  export  interface  static  byte extends long super char final native synchronized class float package throws const goto private transient debugger double implements protected volatile import public

1) 区分大小写

typeof 关键字, typeOf 非关键字

2) 标识符

指变量,函数,属性的名字或者函数的参数。标识符是按照以下规则组合起来的一或多个字符:

1.字母,数字,下划线,$组成

2.只能以字母,下划线,$开头。

3.不能将关键字作为标识符。命名采用驼峰式命名

3) 语句

每个语句以分号结尾,如果省略分号,由解析器确定语句的结尾,即分号可以省略,但是我们要求每个语句的末尾都应该有分号

6.变量

变量是一个值的容器,该容器的值可以随时改变。

ECMAScript的变量是弱类型(松散类型),可以用来保存任何类型的数据。

定义变量时使用var关键字。

变量的使用: 声明 var message;

初始化 message = "hello"

声明并初始化 var message = "hello";

定义多个变量 var message= "hello",found=false, age = 29;

变量名的命名规则: 变量名由字母,数字,下划线以及$组成。

不要使用下划线或者数字作为变量名的开头 变量名应该具有一定的意义,使用小驼峰命名规则 var userAgeTotal = "";

不要使用关键字或是保留字

 js与java区别

js是弱类型的语言

弱类型语言具有如下特点:

  1. 变量的数据类型在初始化的时候确定

  2. 变量的数据类型可以随时发生改变

  3. 类型细分不明显

Java 是强类型语言

 强类型语言具有如下特点:

  1. 变量的数据类型在声明的时候确定

  2. 变量的数据类型一但确定不能更改

var

var用于声明一个变量,在es6中,可以通过let声明一个变量,通过const声明一个常量

7.数据类型

JavaScript基本数据类型:

值类型(基本类型):字符串(String)、数字(Number)、布尔(Boolean)、对空(Null)、未定义(Undefined)、Symbol。

引用数据类型:对象(Object)、数组(Array)、函数(Function)。

注:Symbol 是 ES6 引入了一种新的原始数据类型,表示独一无二的值。

基本类型与引用类型有什么区别?

(1)基本类型的变量保存的是变量值,引用类型的变量保存的是内存地址;

(2)基本类型长度固定,在内存中占据固定大小的空间,数据存放在栈内存中;引用类型可以给对象添加属性和方法,长度不固定,数据存放在堆内存中。引用类型的存储需要栈区和堆区(堆区是指内存里的堆内存)共同完成,栈区内存保存变量标识符和指向堆内存中该对象的指针,也可以说是该对象在堆内存的地址;

(3)基本类型在赋值的时候拷贝值,引用类型在赋值的时候只拷贝地址,不拷贝值。

8. 类型判断

在实际开发中,我们经常要判断一个变量的数据类型。

  • typeof

使用typeof判断数据类型

返回该变量名所指向数据的类型

语法: typeof 变量名

返回值如下:

"undefined" 未定义

"boolean" 布尔类型

"string" 字符串

"number" 数值

"object" 对象或者null或者数组

"function" 函数

symbol(ES6) 独一无二的值

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值