JavaScript源码笔记(一)【爱创课堂专业前端培训】

一、前端页面三个组成部分
HTML结构 CSS表现 JavaScript行为

二、什么是JS?
由网景(NetScape)公司开发,前身叫做LiveScript;

一门基于(面向)对象、面向客户端浏览器,事件驱动的脚本语言;

轻量级但功能强大的(类)编程语言;

可以用来 制作网页游戏 交互式操作 制作动画 等等

JS之父 布兰登·艾奇

JS与JAVA异同点? 详见公众号

三、JS三个组成部分
ECMA核心API:JS基本语法、常量变量、运算符、流程语句、函数、对象

BOM:Browser Object Model 浏览器对象模型 浏览器相关API

DOM:Document Object Model 文档对象模型 文档操作的相关API

四、JS位置的书写
Javascript简称js。js代码书写在一对

script标签可以写在页面的任何位置,我们初始学习的时候,习惯放在body标签里。

js本身不能自己在浏览器加载,必须依托html载体来在浏览器中实现。

面试题:JS代码写在body前和body后有什么区别?

Title

1

五、JS语法
一般情况下,从上往下顺序执行;

每一条语句以分号结束;
严格区分大小写
忽略所有的换行与空格

六、JS中注释
// 单行注释

/* 多行注释 */

1 //弹出一个警告框

2 alert(“hello JS”)

3 /*

4 需求:根据用户输入的数字,给出对应季节

5 思路:1,

6 2,

7 3,

8 */

七、JS中数据输出方式
7.1 通过警告框的方式弹出数据
alert(“Hello World!!”) alert(122333) alert(12.34)

提示:字符串使用双引号或者单引号进行包裹

// 通过警告框的方式输出信息
//弹出字符换
alert(“Hello World!!!”);
// 弹出一个数字
alert(122333);
alert(12.34);
//弹出一个布尔值,布尔值只有两种结果:true 和 false
alert(true);

1

7.2 通过浏览器控制台输出数据
console.log(“Hello World!!”); ==> Hello World

console.log(3+3); ==> 6

console.log(4+”6”) ; ==> 46

console.log(“6”-4); ==> 2

7.3 向页面中输出数据
直接向文档中写数据 document.write(“data”);

Title

1

向标签中写入数据 element.innerHTML = “data”

Title 点我向div中写入数据

1

八、常量
常量,也叫字面量,在程序执行过程中不会发生改变的量

常量可以直接输出

九、变量
9.1 变量概述
在程序执行过程中可以发生改变的量;它是一个用来存储数据的容器。

9.2 变量的声明
var 变量名 = 初始化值;

var 是JS中的关键字,用来声明变量

变量名 用户自定义,命名规则见后面

= 赋值运算符:将 = 右边的初始化值赋值给左边的变量

初始化值 可以是一个常量 也可以是一个变量 还可以是一个表达式

9.3 变量的命名规则
由数字、字母、下划线以及美元符号$组成,数字不能开头
不能是js中的关键字和保留字
驼峰式命名:首字母小写,多个单词从第二个单词开始首字母大写 例如:getNumSum
一般长度不会超过18位

判断下面变量的命名是否符合规则,为什么?

HelloWorld 123 − n u m 12 3 1 23 h 123 -num123 _123h 123num123123h! 我爱你 num b23

//使用var关键字来声明一个变量
var a = 10;
console.log(“a:”,a);

var HelloWorld = “JavaScript”;
console.log(“Hello World:”,HelloWorld);

var $123 = true;
console.log("$123:",$123);

// var -num123 = 123;
// console.log("-num123:",-num123);//Uncaught SyntaxError: Unexpected token -

var 我爱你 = “中国”;
console.log(“我爱你,”,我爱你);

var c = 10;
var b = 20;
var sum = b + c + 10;
console.log(“b:”,b,“sum:”,sum);//==> 40

//变量不需要多次声明
b = 40;
console.log(“b:”,b,“sum:”,sum);//==>40

var num1 = 100,
num2 = 200,
sum2 = num1 + num2;
console.log(“num1:”,num1,“num2:”,num2,“sum2:”,sum2); // ==> num1: 100 num2: 200 sum2: 300

1

输出结果:

1 a: 10

2 Hello World: JavaScript

3 $123: true

4 我爱你, 中国

5 b: 20 sum: 40

6 b: 40 sum: 40

7 num1: 100 num2: 200 sum2: 300

9.4 变量的调用
如上代码,直接调用变量名

注意:此处等号 “=” 不是等于的意思,是赋值的意思

9.5 变量的提升
浏览器中存在两种引擎:渲染引擎 和 JS引擎

JS引擎解析JS代码分成两步:

预解析阶段,会将所有变量的声明提升到当前作用域的最顶部,率先执行;

运行阶段,根据顺序依次赋值和运行代码

console.log(num);

1

运行结果:

1 Uncaught ReferenceError: num is not defined 变量没有被声明

console.log(num);
var num = 20;

1

运行结果:undefined 变量被声明,但是没有被定义或叫没有被赋值

//上面执行的过程类似于下面
var num; //预解析阶段,所有的声明提升到当前作用域的最顶部
console.log(num);//undefined
num = 20;//赋值
console.log(num);//20

1

结果:

undefined

20

通过上面告诉我们,变量一定要先定义,再使用,不然获取不到正确值

十、数据类型的分类
10.1 基本数据类型
Number数值类型: 如 10 20 12.34 Infinity(无限大) NaN(Not a Number)不是一个数字

String字符串类型: 由单引号或者双引号进行包裹的文本 例如:”Hello” “23”

Boolean布尔类型:只有两个值 true 和 false

Null 空值,空指针对象

Undefined 未被定义的:变量被声明,但是没有被赋值

ES5中提出的概念,衍生自Null,但是又不同于Null

10.2 引用数据类型
Object

Function

10.3 判断变量的数据类型 typeof 操作符
语法格式

typeof 变量或常量

typeof(变量或常量)

//基本数据类型
//Number数值类型
var num = 10;
console.log(“num =”,num)
//判断变量的数据类型:typeof 变量 || typeof(变量)
console.log(typeof num); //==> number
console.log(typeof(“Hello”));// ==> string

var num2 = 10.23;
console.log(“num2数据类型为:”,typeof num2);

var num3 = num2 / 0;
//var num3 = -num2 / 0;
console.log(“num3:”,num3,",数据类型:",typeof num3);

var num4 = 4/“Hello”;
console.log(“num4:”,num4,",数据类型:",typeof(num4));

console.log(NaN + 12);
console.log(NaN + “13”);
console.log(12 + NaN);
console.log(“12” + NaN);
console.log(“12” - NaN);
console.log(12 - NaN);

console.log(typeof NaN);//>number
console.log(NaN == NaN);//
>false

1

结果:

num = 10

number

string

数据类型为: number

Infinity ,数据类型: number

NaN ,数据类型: number

NaN

NaN13

NaN

12NaN

NaN

NaN

number

false

//字符串类型String
var str = “34”;
console.log(“str:”,str,“数据类型:”,typeof str);//==>str: 34 数据类型: string

console.log(typeof “true”);//> string
console.log(typeof “hello123”);//
> string

1

//Boolean布尔类型
console.log(true,“数据类型:”,typeof true);
console.log(false,“数据类型:”,typeof false);
console.log(10 === 10);

1

输出结果:

true “数据类型:” “boolean”

false “数据类型:” “boolean”

true

Title

1

var a;
console.log(“a:”,a,“数据类型:”,typeof a);//==>a: undefined 数据类型: undefined

console.log(null == undefined);//true 此处"“判断值是否相同,忽略数据类型
console.log(null === undefined);//false 此处”
="判断值和类型是否相同

1

十一、基本数据类型转换
11.1 隐式转换
借助运算符

var a = 10,
b= “20”,
c = “Hello”,
d = true,
e = 30;
//这里,有一个字符串,通过 + 完成字符串拼接,隐式转换
console.log("a+b = ",a+b,“数据类型:”,typeof(a+b));// > a+b = 1020 数据类型: string
console.log(“a+c+d=”,a+c+d,“数据类型:”,typeof(a+c+d)); //
> a+c+d= 10Hellotrue 数据类型: string
console.log(“a+c+e=”,a+c+e);//>10Hello30
console.log(“a+e+c=”,a+e+c);//
>40Hello
console.log(“c+a+e=”,c+a+e);//==>Hello1030

//当数值 和 布尔进行数学运算时,true 默认转为数值1进行运算 false 默认转为数值 0 进行运算
console.log(“d+e=”,d+e,“数据类型:”,typeof(d+e));//> d+e= 31 数据类型: number
console.log(false + 10);//
>10
console.log(false + true,"=",typeof(true+false));//> 1 “===” “number”

//这里,使用 - * 、 %,如果字符串为数字字符串,会自动转换成数值类型进行数学运算
console.log("a-b = ",a-b,“数据类型:”,typeof(a-b));// ==> -a-b = -10 数据类型: number
console.log(“a-c=”,a-c,“数据类型:”,typeof(a-c));// ==> a-c= NaN 数据类型: number
console.log("ac=",ac,“数据类型:”,typeof(ac));// ==> ac= NaN 数据类型: number
console.log(e-d);// ==> 29

1

11.2 显式转换
借助全局的方法:toString() parseInt() parseFloat()

var a = 10,
b = 10.23,
c = “20”,
d = “Hello”,
e = true,
f = false;

console.log(“a:”,a,",数据类型:",typeof a,"==b:",b,",数据类型:",typeof b,"===c",c,",数据类型:",typeof c,"===d",d,",数据类型:",typeof d,"===e",e,",数据类型:",typeof e,"===f",f,",数据类型:",typeof f)

//通过toString()方法将其他数据类型转换成字符串类型
var g = a.toString();
console.log(“g:”,g,typeof g);//=>g: 10 string
var h = e.toString();
console.log(“h:”,h,typeof h);//=>h: true string

//通过parseInt() parseFloat()将其他数据类型转换成整数或者浮点数类型
var i = parseInt©;
console.log(“i:”,i,typeof i);//>i: 20 number
var j = parseInt(d);
console.log(“j”,j,typeof j);//
> j NaN number
var k = parseFloat(e);
console.log(“k”,k,typeof k);//==> k NaN number

1

使用包装类: String() Number() Boolean()

//通过包装类来进行转换
//String() 将其他数据类型转换成字符串类型
var l = String(b);
console.log(“l”,l,typeof l);//> l 10.23 string
var m = String(f);
console.log(“m”,m,typeof m);//
> m false string

//Number() )将其他数据类型转换成数值类型
var n = Number©;
console.log(“n”,n,typeof n);//> n 20 number
var o = Number(d);
console.log(“o”,o,typeof o);//
> o NaN number
var p = Number(f);
console.log(“p”,p,typeof p);//==> p 0 number

//Boolean() 将其他数据类型转换成布尔类型
var q = Boolean(b);
console.log(“q”,q,typeof q);//>q true boolean
var r = Boolean©;
console.log(“r”,r,typeof r);//
>r true boolean
var s = Boolean(d);
console.log(“s”,s,typeof s);//==>s true boolean

var t = Boolean(null);
console.log(“null:”,t,typeof t);// >null: false boolean
var u = Boolean(undefined);
console.log(“undefined:”,u,typeof u);//
>undefined: false boolean

var v = Boolean(0);
console.log(“0:”,v,typeof v);//>0: false boolean
var w = Boolean(1);
console.log(“1:”,w,typeof w);//
>1: true boolean

1

1

十二、算术运算符
用来执行数学运算

      • / %(取模,取余) ++(自增) --(自减)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第1章 JAVA WEB开发简介 1.1、WEB发展历程 1.2、企业开发架构 1.3、JAVA EE架构 1.4、JAVA EE核心设计模式 1.5、Struts开发框架 1.6、本章摘要 1.7、开发实战讲解 第2章 HTML、JavaScript简介 2.1、服务器与浏览器 2.2、HTML简介 2.2.1、HTML元素概览 2.2.2、创建显示WEB页 2.2.3、创建表单WEB页 2.3、JavaScript简介 2.3.1、JavaScript的基本语法 2.3.2、事件处理 2.3.3、window对象 2.4、本章摘要 2.5、开发实战讲解 第3章 XML简介 3.1、认识XML 3.2、XML解析 3.2.1、DOM解析操作 3.2.2、SAX解析操作 3.2.3、XML解析的好帮手:JDOM 3.2.4、最出色的解析工具:DOM4J 3.3、使用JavaScript操作DOM 3.4、开发实战讲解(基于Oracle数据库) 第4章 Tomcat服务器的安装及配置 4.1、Web容器简介 4.2、Tomcat简介 4.3、Tomcat服务器的下载及配置 4.3.1、Tomcat下载 4.3.2、Tomcat安装 4.3.3、服务器配置 4.4、编写第一个jsp文件 4.5、交互性 4.6、本章摘要 4.7、开发实战讲解 第5章 JSP基础语法 5.1、JSP注释 5.2、Scriptlet 5.2.1、第一种Scriptlet: 5.2.2、第二种Scriptlet: 5.2.3、第三种Scriptlet: 5.3、Scriptlet标签 5.4、page指令 5.4.1、设置页面的MIME 5.4.2、设置文件编码 5.4.3、错误页的设置 5.4.4、数据库连接操作 5.5、包含指令 5.5.1、静态包含 5.5.2、动态包含 5.6、跳转指令 5.7、实例操作:用户登陆程序实现(JSP + JDBC实现) 5.7.1、创建数据库表 5.7.2、程序实现思路 5.7.3、程序实现 5.8、本章摘要 5.9、开发实战讲解(基于Oracle数据库) 第6章 JSP内置对象 6.1、JSP内置对象概览 6.2、四种属性范围 6.2.1、page属性范围(pageContext范围) 6.2.2、request属性范围 6.2.3、session属性范围 6.2.4、application属性范围 6.2.5、深入研究page属性范围 6.3、request对象 6.3.1、乱码解决 6.3.2、接收请求参数 6.3.3、显示全部的头信息 6.3.4、角色验证 6.3.5、其他操作 6.4、response对象 6.4.1、设置头信息 6.4.2、页面跳转 6.4.3、操作Cookie 6.5、session对象 6.5.1、取得Session Id 6.5.2、登陆及注销 6.5.3、判断新用户 6.5.4、取得用户的操作时间 6.6、application对象 6.6.1、取得虚拟目录对应的绝对路径 6.6.2、范例讲解:网站计数器 6.6.3、查看application范围的属性 6.7、WEB安全性及config对象 6.7.1、WEB安全性 6.7.2、config对象 6.8、out对象 6.9、pageContext对象 6.10、本章摘要 6.11、开发实战讲解(基于Oracle数据库) 第7章 JavaBean 7.1、JavaBean简介 7.2、在JSP中使用JavaBean 7.2.1、WEB开发的标准目录结构 7.2.2、使用JSP的page指令导入所需要的JavaBean 7.2.3、使用指令 7.3、JavaBean与表单 7.4、设置属性: 7.4.1、设置指定的属性 7.4.2、指定设置属性的参数 7.4.3、为属性设置具体内容 7.5、取得属性: 7.6、JavaBean的保存范围 7.6.1、page范围的JavaBean 7.6.2、request范围的JavaBean 7.6.3、session范围的JavaBean 7.6.4、application范围的JavaBean 7.7、JavaBean的删除 7.8、实例操作:注册验证 7.9、DAO设计模式 7.9.1、DAO设计模式简介 7.9.2、DAO开发 7.9.3、JSP调用DAO 7.10、本章摘要 7.11、开发实战讲解(基于Oracle数据库) 第8章 文件上传 8.1、smartupload上传组件 8.1.1、上传单个文件 8.1.2、混合表单 8.1.3、为上传文件自动命名 8.1.4、批量上传 8.2、FileUpload 8.2.1、使用FileUpload接收上传内容 8.2.2、保存上传内容 8.2.3、开发FileUpload组件的专属操作类 8.3、本章摘要 8.4、开发实战讲解(基于Oracle数据库) 第9章 Servlet程序开发 9.1、Servlet简介 9.2、永远的“HelloWorld”:第一个Servlet程序 9.3、Servlet与表单 9.4、Servlet生命周期 9.5、取得初始化配置信息 9.6、取得其他内置对象 9.6.1、取得HttpSession实例 9.6.2、取得ServletContext实例 9.7、Servlet跳转 9.7.1、客户端跳转 9.7.2、服务器端跳转 9.8、WEB开发模式:Mode I与Mode II 9.8.1、Mode I 9.8.2、Mode II:Model-View-Controller 9.9、实例操作:MVC设计模式应用 9.10、过滤器 9.10.1、过滤器的基本概念 9.10.2、实现过滤器 9.10.3、过滤器的应用 9.11、监听器 9.11.1、对application监听 9.11.2、对session监听 9.11.3、对request监听 9.11.4、监听器实例 —— 在线人员统计 9.12、本章摘要 9.13、开发实战讲解(基于Oracle数据库) 第10章 表达式语言 10.1、表达式语言简介 10.2、表达式语言的内置对象 10.2.1、访问四种属性范围的内容 10.2.2、调用内置对象操作 10.2.3、接收请求参数 10.3、集合操作 10.4、在MVC中应用表达式语言 10.5、运算符 10.6、本章摘要 10.7、开发实战讲解(基于Oracle数据库) 第11章 Tomcat数据源 11.1、数据源操作原理 11.2、在Tomcat中使用数据库连接池 11.3、查找数据源 11.4、本章摘要 第12章 JSP标签编程 12.1、标签编程简介 12.2、定义一个简单的标签 —— 空标签 12.3、定义有属性的标签 12.4、TagSupport类 12.5、定义有标签体的标签库 12.6、开发迭代标签 12.7、BodyTagSupport类 12.8、TagExtraInfo类和VariableInfo类 12.9、使用BodyTagSupport开发迭代输出 12.10、简单标签 12.11、DynamicAttributes接口 12.12、本章摘要 第13章 标准标签库(JSTL) 13.1、JSTL简介 13.2、安装JSTL 1.2 13.3、核心标签库 13.3.1、标签 13.3.2、标签 13.3.3、标签 13.3.4、标签 13.3.5、标签 13.3.6、、、标签 13.3.7、标签 13.3.8、标签 13.3.9、标签 13.3.10、标签 13.3.11、标签 13.4、国际化标签库 13.4.1、标签 13.4.2、标签 13.4.3、读取资源文件 13.4.4、数字格式化标签 13.4.5、日期时间格式化标签 13.4.6、设置时区 13.5、SQL标签库 13.5.1、 13.5.2、数据库操作标签 13.5.3、事务处理 13.6、XML标签库 13.6.1、XPath简介 13.6.2、标签 13.6.3、标签 13.6.4、标签 13.6.5、标签 13.6.6、、、标签 13.6.7、标签 13.7、函数标签库 13.8、本章摘要 13.9、开发实战讲解(基于Oracle数据库) 第14章 AJAX开发技术 14.1、AJAX技术简介 14.2、XMLHttpRequest对象 14.3、第一个AJAX程序 14.4、异步验证 14.5、返回XML数据 14.6、本章摘要 14.7、开发实战讲解(基于Oracle数据库) 第15章 Struts基础开发 15.1、Struts简介 15.2、配置Struts开发环境 15.3、开发第一个Struts程序 15.4、Struts工作原理 15.5、深入Struts应用 15.6、本章摘要 15.7、开发实战讲解(基于Oracle数据库) 第16章 Struts常用标签库 16.1、Struts标签库简介 16.2、Bean标签 16.2.1、标签 16.2.2、标签 16.2.3、资源访问标签 16.2.4、标签 16.2.5、标签 16.2.6、标签 16.2.7、国际化与标签 16.3、Logic标签 16.3.1、标签和标签 16.3.2、标签和标签 16.3.3、关系运算标签 16.3.4、标签 16.3.5、重定向标签: 16.4、Html标签 16.4.1、<html:form>标签 16.4.2、<html:text>与<html:password>标签 16.4.3、<html:radio>标签 16.4.5、<html:textarea>标签 16.4.6、<html:hidden>标签 16.4.7、按钮标签 16.4.8、实例:编写基本表单 16.4.9、复选框标签 16.4.10、下拉列表框 16.5、本章摘要 16.6、开发实战讲解(JSP + Oracle) 第17章 Struts高级开发 17.1、Struts多人开发 17.2、Token 17.3、文件上传 17.4、动态ActionForm 17.5、Action深入 17.5.1、ForwardAction 17.5.2、IncludeAction 17.5.3、DispatchAction 17.6、验证框架 附录A:实用工具 18.1、JavaMail 18.1.1、James邮件服务器的下载及配置 18.1.2、JavaMail简介及配置 18.1.3、发送普通邮件 18.1.4、发送带附件的HTML风格邮件 18.2、操作Excel文件 18.2.1、JExcelAPI简介 18.2.2、创建一个Excel文件 18.2.3、读取Excel文件 18.2.4、格式化文本 18.3、本章摘要 附录B:MyEclipse开发工具 19.1、MyEclipse简介 19.2、MyEclipse的安装 19.3、MyEclipse的使用 19.4、配置Tomcat服务器 19.5、MyEclipse卸载 19.6、本章摘要 附录C:HTTP状态码及头信息 20.1、HTTP状态码 20.2、HTTP头信息
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值