Javascript一些难懂的基础语法和概念(适合初学者)

目录

1.原生Javascript

2.!!的用法

3.JavaScript 可以通过不同的方式来输出数据

4.在 JavaScript 中,用分号来结束语句是可选的

5.JavaScript 拥有动态类型

6.如果变量在函数内没有声明(没有使用 var 关键字),该变量为全局变量

7.全局变量在页面关闭后销毁

8.===(类型和值都相等)、!== 和 ==、!= 的区别

9.switch 语句会使用恒等计算符(===)进行比较。

10.js document.write()换行方式

11.用 typeof 检测 null 返回是object。undefined 的类型则是undefined。NaN 的数据类型是 number

12.三种对象类型:Object,Date,Array

13.Date()方法

14.请使用 isNaN() 来判断一个值是否是数字。原因是 NaN 与所有值都不相等,包括它自己

15.Operator + 可用于将变量转换为数字

16.严格模式通过在脚本或函数的头部添加 "use strict"; 。严格模式下你不能使用未声明的变量

17.var和let的区别

18.变量提升

19.argument 对象

20.查找 HTML 元素的三种方法

21.事件传递有两种方式

22.JavaScript 的三种弹窗

23.JavaScript 计时事件

24.类的数据类型就是函数,类本身就指向构造函数

25.小数点前的0可忽略不写

26.export 和 export default 的区别

 

27.AJAX

28.HTML使用CSS的方式

29.HTML5 Web 存储

30.静态页面HTML和动态页面jsp的区别


JavaScript 的正式名称是 ECMAScript。

 

1.原生Javascript

原生:自带的,不需要引入任何东西的,可直接使用的。不用js框架(如JQuery),直接写原始的javascript。

2.!!的用法

if(!!a) 等价于 if(a!=null&&typeof(a)!=undefined&&a!='')。

3.JavaScript 可以通过不同的方式来输出数据

  • 使用 window.alert() 弹出警告框。
  • 使用 document.write() 方法将内容写到 HTML 文档中。
  • 使用 innerHTML 写入到 HTML 元素。
  • 使用 console.log() 写入到浏览器的控制台(按F12查看控制台)。

4.在 JavaScript 中,用分号来结束语句是可选的

5.JavaScript 拥有动态类型

这意味着相同的变量可用作不同的类型:

  • var x = 5;               // 现在 x 为数字
  • var x = "John";      // 现在 x 为字符串

6.如果变量在函数内没有声明(没有使用 var 关键字),该变量为全局变量

7.全局变量在页面关闭后销毁

全局变量是 window 对象: 所有数据变量都属于 window 对象。调用方式:window.全局变量名。

8.===(类型和值都相等)、!== 和 ==、!= 的区别

  • null==undefined //true
  • 0=='' //true
  • 0=='0' //true
  • 0=='\t\r\n' //true

因为false等于0,故上述左侧0改为false也成立。

9.switch 语句会使用恒等计算符(===)进行比较。

10.js document.write()换行方式

因为要被html识别使用,不能用转义字符\n  ,要使用br标签,("<br>")。

11.用 typeof 检测 null 返回是object。undefined 的类型则是undefined。NaN 的数据类型是 number

12.三种对象类型:Object,Date,Array

13.Date()方法

  • getDate() 从 Date 对象返回一个月中的某一天 (1 ~ 31)。 即年月日的日
  • getDay() 从 Date 对象返回一周中的某一天 (0 ~ 6)。 即周几

14.请使用 isNaN() 来判断一个值是否是数字。原因是 NaN 与所有值都不相等,包括它自己

15.Operator + 可用于将变量转换为数字

  • var y = "5";      // y 是一个字符串
  • var x = + y;      // x 是一个数字

16.严格模式通过在脚本或函数的头部添加 "use strict"; 。严格模式下你不能使用未声明的变量

17.var和let的区别

var 声明的变量是全局的,包括循环体内与循环体外;但函数内var声明的变量为局部变量。let 声明的变量只在 let 命令所在的代码块 {} 内有效,在 {} 之外不能访问,也不影响 {} 外的同名变量;let 关键字定义的变量需要先声明再使用。

const定义常量与使用let类似, 定义的变量都是块级作用域。关键字let 和 const是ES2015(ES6) 新增的。

18.变量提升

函数声明和变量声明总是会被解释器悄悄地"提升"到方法体的最顶部。即变量可以先使用再声明。

19.argument 对象

argument 对象(隐式参数)包含了函数调用的参数数组,与C#的params(可变参数)类似。

20.查找 HTML 元素的三种方法

通过 id 找到 HTML 元素;通过标签名找到 HTML 元素;通过类名找到 HTML 元素。document.getElementById,getElementsByTagName,getElementsByClassName

21.事件传递有两种方式

冒泡与捕获。默认useCapture值为 false, 即冒泡传递。<div><p></p></div>

冒泡:点击p,先触发p后触发div。捕获则相反。

22.JavaScript 的三种弹窗

警告框window.alert()、确认框confirm()、提示框prompt()

23.JavaScript 计时事件

  • setInterval() - 间隔指定的毫秒数不停地执行指定的代码。
  • setTimeout() - 在指定的毫秒数后执行指定代码。

24.类的数据类型就是函数,类本身就指向构造函数

25.小数点前的0可忽略不写

如0.02可以写成:.02

26.export 和 export default 的区别

export命令用于规定模块的对外接口。

export命令对外接口是有名称的且import命令从模块导入的变量名与被导入模块对外接口的名称相同,而export default命令对外输出的变量名可以是任意的,这时import命令后面,不使用大括号。

export default命令用于指定模块的默认输出。显然,一个模块只能有一个默认输出,因此export default命令只能使用一次。所以,import命令后面才不用加大括号,因为只可能唯一对应export default命令。


 

27.AJAX

AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。

AJAX 最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容。

28.HTML使用CSS的方式

HTML插入样式表的方法有三种:

  • 外部样式表(External style sheet)
  • 内部样式表(Internal style sheet)
  • 内联样式(Inline style)

29.HTML5 Web 存储

客户端存储数据的两个对象为:

  • localStorage - 用于长久保存整个网站的数据,保存的数据没有过期时间,直到手动去除。
  • sessionStorage - 用于临时保存同一窗口(或标签页)的数据,在关闭窗口或标签页之后将会删除这些数据。

30.静态页面HTML和动态页面jsp的区别

(1)html 静态页面

静态web页面,一般指html。

①在静态Web程序中,客户端使用Web浏览器(IE、FireFox等)经过网络(Network)连接到服务器上,使用HTTP协议发起一个请求(Request),告诉服务器我现在需要得到哪个页面,所有的请求交给Web服务器,之后WEB服务器根据用户的需要,从文件系统(存放了所有静态页面的磁盘)取出内容。之后通过Web服务器返回给客户端,客户端接收到内容之后经过浏览器渲染解析,得到显示的效果。

②静态web无法连接数据库。

③由于现在的web页面中,大量使用JS,导致浏览器打开页面,就会占用大量的内存,服务端的压力是减轻了,但压力转移到了客户端。

(2)jsp 动态页面

动态web页面,一般指jsp。

动态WEB中,程序依然使用客户端和服务端,客户端依然使用浏览器(IE、FireFox等),通过网络(Network)连接到服务器上,使用HTTP协议发起请求(Request),现在的所有请求都先经过一个WEB Server来处理。

  • 如果客户端请求的是静态资源(*.htm或者是*.htm),则将请求直接转交给WEB服务器,之后WEB服务器从文件系统中取出内容,发送回客户端浏览器进行解析执行。
  • 如果客户端请求的是动态资源(*.jsp、*.asp/*.aspx、*.php),则先将请求转交给WEB Container(WEB容器),在WEB Container中连接数据库,从数据库中取出数据等一系列操作后动态拼凑页面的展示内容,拼凑页面的展示内容后,把所有的展示内容交给WEB服务器,之后通过WEB服务器将内容发送回客户端浏览器进行解析执行。

 

 

(3)两者的区别

①静态页面就是设计者把页面上所有东西都设定好、做死了,然后放上去,不管是谁在任何时候看到的页面内容都是一样的,一成不变(除非手动修改页面内容)。静态html页面文件,可以直接用本地的浏览器打开。比如:file://Users/testJSP/index.html。

②动态页面的内容一般都是依靠服务器端的程序来生成的,不同人、不同时候访问页面,显示的内容都可能不同。网页设计者在写好服务器端的页面程序后,不需要手工控制,页面内容会按照页面程序的安排自动更改变换。

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值