摘要:介绍编程数据结构,算法,内存分配表单验证需要一门语言可以直接运行在浏览器中,来完成表单验证的功能。
Javascript介绍
编程(数据结构,算法,内存分配)
表单验证
需要一门语言可以直接运行在浏览器中,来完成表单验证的功能。
浏览器厂商
网景 firefox js 标准 js解释器 IE js js解释器 google js js解释器 ECMAScript
Javascript
1) ECMAScrpt 【js标准】(兼容器100%)
注释 // 、/**/ 变量 操作符 流程控制语句 数组 对象 函数 正则表达式 ... 所有的JS解释器都可以兼容ECMAScript 【lodash】 ECMAScript库
2) DOM【js操作html的api】
Document object model 文档对象模型 var dom = document.getElementsByTagName("input"); var dom = document.getElementsById("input_name"); dom.onclick = function(){} js语言 基础语法 基础库 【jQuery】DOM库
3) BOM【js操作浏览器的api】
Browser Object model 浏览器对象模型 alert()/prompt()/confirm() setInterval() setTimeout() XMLHttpReqeust ajax
解释器
浏览器 【dom操作,动画,表单校验,ajax异步交互】
nodeJS【网络编程(http模块)数据库操作(mysql),io文件(file),iot(...)】
google v8 => nodeJS
可以安装linux window macos unix
学习方式
环境: ubuntu16.04
软件: nodejs、vi(spf13)、git
使用sudoer用户登录
在家目录中编写测试代码
hello world
1) 编写代码
$ vi hello.js
2) 执行代码
$ node hello 或 $ node hello.js
js特点
1) 解释型语言
js -> nodejs(js解释器)
2) 弱类型语言
变量的数据类型取决于值的数据类型 var a ; a = 2; // a的数据类型为number a = true; // a的数据类型为boolean
3) 顺序解释执行
4) 既可以作为前端脚本语言,也可以作为后端语言,取决于应用平台(浏览器/操作系统)和使用的框架(dom、jquery/http、mysql、file)
Java
编译型语言
java -> .class -> jvm(java解释器)
强类型语言
变量的数据类型取决于声明的数据类型 int a ; a = 3; a = 8; 无符号整数 char 有符号整数 byte short int long 有符号小数 float double 布尔类型 boolean
数据类型
基本数据类型(用于保存单个值)
字符串类型 string var a = "hello world" var a = "hello world" var a = "1"; var a = "{"name":"terry","age":12}"; 数字类型 number var a = 3; var a = 3.1; var a = 3.0; var a = 011; var a = 0x11; var a = 1.3e10; var a = 1/0; 布尔类型 boolean var a = true; var a = false; null 表示空对象 var gf = null; //经常做,表示占位 undefined 表示未定义 var a; console.log(a); var b = undefined; //很少这么做 undefined 与null关系 undefined继承null,所有undefined == null结果为true,但是null表示空对象,undefined表示未定义
引用数据类型(保存多个值)
对象 var a = {name:"terry",age:12}; 数组 var arr = [1,2,3,4]; 函数 正则表达式 ...
内存图: 变量都维护在栈区,基本数据类型的值保存在栈区,而引用数据类型的引用地址保存在栈区,值保存在堆区
变量
1) 变量声明
var a; var b;
2) 变量初始化
a =3; b = "hello" var c = true; => var c; c = true;
3) 变量使用
var result = a + 1; console.log(b);
var a = 3;
a是一个基本数据类型的变量,a的变量类型是number,a是一个整数类型
变量是指向一个值
基本数据类型类型的变量保存的单个值
4) 变量的提升
在所有代码执行之前,js解释器会将js中所有的var声明的变量提升。
编程语言
1) 语法
2) 系统库
3) 解释器
java -> jvm c -> linux js -> nodejs/浏览器
10.内置函数
console.log() 如何判断变量的数据类型 typeof v var a = "hello world"; if((typeof a) == "string"){ } if(a == "null"){} 如何判断一个变量是否是有穷的 isFinite(); 当参数为无穷大或者小返回false 如何判断一个变量是否是NaN isNaN() 当参数为NaN返回true
操作符(运算符)
1) 算术运算符(number)
+ += - -= * *=
/ /= % %= var a = 3; var result = a + 3; result += 3; =》 result = result + 3; 2) 一元运算符(number) + - var a = "12"; +a; -a; 经常用于类型转换 ++ -- var a = 12; a++; ++a; //a = 14 var result = ++a+a++; /* a = 14; ++a //a = 15; result = a + a //result = 30 a++ //a = 16 */ console.log(a); console.log(result); 3) 逻辑运算符(短路运算符) && var age= 12; var gender = "male" age > 18 && gender == "male" 并且,当第一个表达式为假,就可以确定整个表达式结果为假,这时候无需判断第二个表达式,将第一个表达式运算结果返回;当第一个表达式为真,整个表达式的结果取决于第二个表达式,将第二个表达式运算结果返回。 var result = "hello" && 12; || ! !true false !false true !!true true !!"hello" true 将其他数据类型转化为boolean 4) 比较运算符 == != 比较两个变量的值,当值的数据类型不一样的时候,先转换为相同类型的然后再比较 当比较引用数据类型的时候,比较的是内存地址 === !== 先比较两个变量的数据类型,数据数据类型不一样,返回false,否则继续比较值 1 == "1" //true 1 === "1" //false > >= < <= 5) 三目运算符 exp1 ? exp2 : exp3 当exp1为真,返回exp2,否则返回exp3 var age = 22; var result = age >= 18 ? "成年人":"未成年人" => var result; var age = 22; if(age >= 18){ result = "成年人"; } else { result = "未成年人"; } 6) 拼接运算符 字符串与任何其他数据类型相加都是字符串拼接 "terry" + 2 //"terry2" 如何将其他数据类型转换为字符串 true+"" 7) 赋值运算符 var a = 3 + 1; 将3+1的结果赋值给a #8) 位运算符(number, 转换为二进制再运算) ^ & | 1&2
类型转换
string
String(v) +"" v.toString() //不适用于null,undefined
boolean
Bollean(v) !!v null false undefined false NaN false Infinite true 0 false "" false {} true
number
Number(v) +v -(-v) true 1 false 0 undefined NaN parseInt(v) v为字符串 "12.3" 12 "12abc" 12 "a12abc" NaN parseFloat(v) "12.3" 12.3 "12abc" 12 "a12abc" NaN
表达式
操作符 + 操作数
表达式以";"作为结束
var a = 3;
var result = a>3;
...
流程控制语句
分支语句
1) if else
if(exp1) { exp2 } exp3 exp1可以为任意数据类型,在执行的时候先判断exp1为true还是false,如果为true执行exp2,exp3始终都会执行 if(exp1){ exp2 } else { exp3 } 如果exp1为true,执行exp2,否则执行exp3 if(exp1){ exp2 } else if(exp3){ exp4 } else { exp5 } 如果exp1为true,执行exp2;如果exp1为false,判断exp3,如果exp3为true,执行exp4,否则执行exp5 课堂作业 var day = 3; 1 今天是周一 2 今天是周二 ... 6,7 今天是周末
2) switch
var day = 3; switch(day){ case 常量1: 代码块1 break; case 常量2: 代码块2 break; ... default : 代码块n } day === 常量1 =》 代码块1 day === 常量2 =》 代码块2 ... 代码块n 注意: 1. case代码块中的break不能省略 2. default可以放在代码块的上部,中部,底部,如果放在上部或者中部,一定不能省略break 3. 变量与常量对比的时候使用"==="
2. 循环语句 a b c d 变量 拼音 数据类型 汉字 操作符 语法 表达式 成语,古诗词, 史记【文言文】,文章 流程控制语句 写作,写字
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/110042.html
稍微整理了一下自己平时看到的前端学习资源,分享给大家。 html MDN:Mozilla开发者网络 SEO:前端开发中的SEO css 张鑫旭:张鑫旭的博客 css精灵图:css精灵图实践 栅格系统:详解CSS中的栅格系统 媒体查询:css媒体查询用法 rem布局:手机端页面自适应布局 移动前端开发之viewport的深入理解:深入理解viewport 淘宝前端布局:手机淘宝移动端布局 fl...
摘要:四则运算编译器,虽然说功能很简单,只能编译四则运算表达式。再复杂的编译器再简单的编译器,功能上是差不多的,只是复杂的编译器实现上会更困难。每一章都是理论与实践结合的经典,从计算机硬件知识到软件体系,再到编译原理和操作系统。 四则运算编译器,虽然说功能很简单,只能编译四则运算表达式。但是编译原理前端部分几乎都有涉及,词法分析,语法分析,还有代码生成。 再复杂的编译器、再简单的编译器,功能...
摘要:特意对前端学习资源做一个汇总,方便自己学习查阅参考,和好友们共同进步。 特意对前端学习资源做一个汇总,方便自己学习查阅参考,和好友们共同进步。 本以为自己收藏的站点多,可以很快搞定,没想到一入汇总深似海。还有很多不足&遗漏的地方,欢迎补充。有错误的地方,还请斧正... 托管: welcome to git,欢迎交流,感谢star 有好友反应和斧正,会及时更新,平时业务工作时也会不定期更...
摘要:一般的程序,是无法直接执行的,因为只能识别机器指令。所以要想执行一个程序,首先要将高级语言编写的程序翻译为汇编代码,再将汇编代码翻译为机器指令,这样才能识别并执行。 编译器 编译器是一个程序,作用是将一门语言翻译成另一门语言。 一般的程序,CPU 是无法直接执行的,因为 CPU 只能识别机器指令。所以要想执行一个程序,首先要将高级语言编写的程序翻译为汇编代码,再将汇编代码翻译为机器指令...
摘要:个人前端文章整理从最开始萌生写文章的想法,到着手开始写,再到现在已经一年的时间了,由于工作比较忙,更新缓慢,后面还是会继更新,现将已经写好的文章整理一个目录,方便更多的小伙伴去学习。 showImg(https://segmentfault.com/img/remote/1460000017490740?w=1920&h=1080); 个人前端文章整理 从最开始萌生写文章的想法,到着手...
阅读 3220·2021-11-23 09:51
阅读 1027·2021-08-05 09:58
阅读 660·2019-08-29 16:05
阅读 968·2019-08-28 18:17
阅读 3027·2019-08-26 14:06
阅读 2719·2019-08-26 12:20
阅读 2152·2019-08-26 12:18
阅读 3061·2019-08-26 11:56