终于有了本身的博客。java
2018年12月25日圣诞节,我正式进入对软件开发的学习生活中。面试
开课两周有余,现基于学习状况,总结以下:ajax
0 计算机组成
软件
- 应用软件:浏览器(Chrome/IE/Firefox)、QQ、Sublime、Word
- 系统软件:Windows、Linux、mac OSX
硬件
- 三大件:CPU、内存、硬盘 -- 主板
- 输入设备:鼠标、键盘、手写板、摄像头等
- 输出设备:显示器、打印机、投影仪等
1 学习目标:
- 掌握编程的基本思惟
- 掌握编程的基本语法
HTML和CSS 小米
2 课前说明
目标:掌握编程的基本思想
掌握JavaScript的基础语法,使用常见API(备注)完成相应案例及练习和做业
培养独立解决问题能力
遇到问题先独立调试(牛X从规范和调试开始)
可以独立写出全部案例代码
4 ##课外提示
1.敲代码用指法,通常坚持一周者便可熟练
2.码农不须要练就一阳指或者二指禅
3.可使用金山打字通,此处并不是打广告,我的建议,每天敲代码,不停的反复的敲练习和做业,速度和基本功的快速提高
5 解决一个问题
## 网页、网站和应用程序
网页:单独的一个页面
网站:一些列相关的页面组成到一块儿
应用程序:能够和用户产生交互,并实现某种功能。
=======================================================================================
一、Javascript前世此生
1.一、什么是Javascript
Javascript运行于Javascript 【解释器/引擎】中的解释性脚本语言
Javascript运行环境:
一、Javascript解释器 :NodeJS
二、嵌入在浏览器中的内核(引擎)
1.二、Javascript 发展
一、1992年 Nombas公司 开发了一款脚本语言 ScriptEase ,能够嵌入在网页中
大概在 1992 年,一家称做 Nombas 的公司开发了一种叫作 C 减减(C-minus-minus,简称 Cmm)的嵌入式脚本语言。Cmm 背后的理念很简单:一个足够强大能够替代宏操做(macro)的脚本语言,同时保持与 C (和 C ++)足够的类似性,以便开发人员能很快学会。这个脚本语言捆绑在一个叫作 CEnvi 的共享软件中,它首次向开发人员展现了这种语言的威力。
Nombas 最终把 Cmm 的名字改为了 ScriptEase,缘由是后面的部分(mm)听起来过于消极,同时字母 C “使人惧怕”。
如今 ScriptEase 已经成为了 Nombas 产品背后的主要驱动力。
二、1995年 Netscape[neitskeip]公司(美国Netscape公司,以开发Internet浏览器闻名) 为 [ˈnævɪgeɪtə(r)]Navigator2.0浏览器开发了一款脚本语言 LiveScript ,
为了赶时髦 将其命名为 Javascript。Javascript与Java没有一点关系
三、1996年,Microsoft[maikrisouft] ,为了IE3.0,发布了一个Javascript克隆版本 JScript
四、1997年 Javascript1.1 做为草案提交给了 ECMA(欧洲计算机制造商协会)
--> ECMA-262标准 -->ECMAScript
1.3 Javascript (JS)的组成:
一、核心(ECMAScript, ES)
二、文档对象模型(DOM,Document Object Model) 一套操做页面元素的API
DOM能够把HTML看作是文档树,经过DOM提供的API能够对树上的节点进行操做
三、浏览器对象模型(BOM,Borowser Object Model) 弹出框、控制浏览器跳转、获取分辨率等 一套操做浏览器功能的API.
1.4 Javascript特色
一、任何编辑工具均可以编写Javascript,语法相似于Java,C,...
二、无需编译
三、弱类型语言
由值来决定数据类型
强数据类型:由数据类型 决定值
1.5 基于对象的编程语言
万物皆对象
1.6 Javascript的用途
JavaScript的解释器被称为JavaScript引擎,为浏览器的一部分,普遍用于客户端的脚本语言,最先是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增长动态功能。
最初的目的是为了处理表单的验证操做。
### JavaScript如今的意义(应用场景)
JavaScript 发展到如今几乎无所不能。
1. 网页特效 客户端数据计算 表单验证 非空验证 数据范围验证 浏览器事件的触发和处理
2. 服务端开发(Node.js) 服务器的异步数据提交(ajax)
3. 命令行工具(Node.js)
4. 桌面程序(Electron)
5. App(Cordova)
6. 控制硬件-物联网(Ruff)
7. 游戏开发(cocos2d-js)
JavaScript和HTML、CSS的区别
1. HTML:提供网页的结构,提供网页中的内容
2. CSS: 用来美化网页
3. JavaScript: 能够用来控制网页内容,给网页增长动态的效果
二、使用javaScript
2.1 浏览器说明
浏览器是指能够显示网页服务器或者文件系统的HTML文件内容,并让用户与这些文件交互的一种软件。
通俗的讲:能够显示页面的一个软件,
国内网民计算机上常见的网页浏览器有,QQ浏览器、Internet Explorer、Firefox、Safari,Opera、Google Chrome、百度浏览器、搜狗浏览器、猎豹浏览器、360浏览器、UC浏览器、傲游浏览器、世界之窗浏览器等,浏览器是最常用到的客户端程序。
经常使用的五大浏览器:chrome,firefox,Safari,ie,opera
咱们用chrome(谷歌浏览器)
2.二、JavaScript初体验(JavaScript的书写位置)
CSS:行内样式、嵌入样式、外部样式
A:写在行内
<input type="button" value="按钮" onclick="alert('Hello World')" />
B:写在script标签中
<head>
<script>
alert('Hello World!');
</script>
</head>
C: 写在外部js文件中,在页面引入
<script src="main.js"></script>
注意点
引用外部js文件的script标签中不能够写JavaScript代码
2.3语句
被Javascript引擎所解释执行的一句代码
组成:
表达式、关键字、运算符
运算符:+,-,*,/,%,> ....
表达式:由一个或多个运算符以及一个或多个操做数组成的。 如:1+2,
特色:以分号表示结束
console.log();
document.write();
window.alert();
习惯:一行只写一条语句
注意:严格区分大小写
console.log();
console.Log();
2.四、注释
单行注释://
多行注释:/* */
/*
/*
*/
*/
/*
console.log();
/*window.alert();
document.write()*/
console.log();*/
三、变量
内存 : 临时性保存据算计程序在【运行过程当中】要用到的数据。
TB->GB->MB->KB->B->bit
8bit = 1B
1024B=1kb
Javascript
硬盘 : 永久性保存数据
0x000000000000000000a13247aaccxx
3.一、什么是变量
就是内存中的一段空间,用于保存程序运行过程当中要用到的数据。就是存储数据的容器。
3.二、为何要使用变量
使用变量能够方便的获取或者修改内存中的数据
3.三、什么是变量名
内存空间的一个别名,为了方便记忆。即变量的名字。
3.四、如何使用变量 到内存中开辟一段空间用于保存数据
语法:var 声明变量
var age;
变量的赋值
将数据保存进变量
运算符:= 赋值运算符
语法:
变量名=值;
var name;
name="张无忌";
初始化:声明变量并赋值
var 变量名称=值;
注意:没有被赋值的变量自动取值为undefined
var name;
var age;
var hobby;
一条语句中声明多个变量:
var name,age,hobby;
var name="张三丰",age=30;
3.五、变量名命名规范
一、要求
一、不容许使用关键字以及保留关键字命名
标准关键字:
eg : var , function , if , for ,true,false ...
保留关键字:
class,int,float,double ... ...
二、命名规范
a、能够包含字母、数字、下划线 _、$
b、不能以数字开头
var name;
var name1;
var 1name;错误
c、不容许重复
d、尽可能见名知意
var name;
var age;
var a,b,c,d,....aa,ab,ac,ad;
var xingming,nianling;
e、推荐采用
匈牙利命名法
控件缩写+功能
txtName
rdoGender
chkHobby
selCity
下划线命名法
_功能名称
_name;
_age;
驼峰命名法
若是变量名称由多个单词组成,第一个单词所有小写,第二个单词开始,首字符变大小
userName
txtusernmae --> txtUserName
3.六、变量使用注意问题
一、未初始化变量的使用
只定义未赋值,值为undefined
未定义,使用,错误,not defined
二、在可能的状况下,声明变量时尽可能初始化
var age=10;
var name="张三";
var isHappy=true;
三、将变量的声明和赋值分开操做
var name;
var age;
name="";
age=18;
四、对变量进行的存取操做
一、设置变量的值(赋值,存)
=
var name="张三丰";//张三丰
name="张无忌";//张无忌
name+="殷素素";//张无忌殷素素
name = name + "张翠山";//张无忌殷素素张翠山
name = name+""; ==> name+="";
特殊:
var i=10;
i++;
++i; ==> i=i+1;
注意:赋值时,=的左边必定是变量
二、获取变量的值(取值)
var uname="张无忌";
console.log(uname);
var newName = uname;
uname : 取值操做(=右边使用)
newName : 赋值操做(=左边使用)
四、运算符
一、算数运算符
+,-,*,/,%
%:取余(模),计算两个数字相除后的余数
5%2 结果为 1
3%5 结果为 3
经常使用场合:
一、获取数字的最后一位
1234
1234%10=123 ... 4
1234%100 = 12 ... 34
二、判断奇偶性 或 判断 是某数字的倍数
58 % 2 结果是否为 0?
78 是 3的倍数吗??
78 % 3 结果是否为 0 ?
+ :
一、求和:数字类型的数值求和
二、"" 与 +联用 ,做用是追加
"张无忌" + 123 结果为:张无忌123
123 + "张无忌" 结果为:123张无忌
12+25 结果为:37
"12"+25 结果为:1225
'12'+25 结果为:1225
注意:由算数运算符 与 操做数 组成的表达式,称为 算数表达式
五、数据类型
一、什么是数据类型
保存在内存中的数据的类型,根据不一样的类型内存中所开辟的空间也不同
二、数据类型
一、原始类型 (基本类型)
一、number 类型
数字
能够表示 32 位 (4字节)的整数,或64位(8字节)的浮点数
浮点数:小数
var age;
age=12; //number
age=24.5;//number
二、string 类型
字符串
一系列的文本数据
注意:赋值时,必须使用 " " 或 ' ' 扩起
var name="张三丰";//string
var age = "12"; //string
特殊字符,能够经过转移字符实现
"Hello World"
console.log(""Hello World"");错误
\ 做为开始
\" : 表示一个 "
\' : '
\n : 换行
\t : 制表符
\\ : \
console.log("Hello World");
三、boolean 类型
布尔
只表示 确定(真) 或 否认(假)的数据
值:true(真) 和 false(假)
使用场合:做为程序的条件(判断、循环)
在与 number 类型作运算时,true=1,false=0
四、null 类型
空
五、undefined 类型
未定义
表示 不存在的数据
二、引用类型chrome
Object 编程
Number数组
Boolean浏览器
String
Date服务器
/*JS第二章内容*/app
一、算数运算符
+ - * / %
++自增1 --自减1
++ 在后在前 只要是单独一行 结果自增1
若是不是单独一行 ++ 在后 内存里 自增1 返回旧值
若是不是单独一行 ++ 在前 内存里 自增1 返回新值
- * / :出现舍入偏差 toFixed(2);舍入偏差
2 - 1.6 = 0.4[0.399999]
x.toFixed(2);
分析规则:
1:若是++或--运算符单独一行
放在变量前或放在变量后结果同样
2:++ -- 屡次运算在一行
i++ + ++i
若是++前 :1内存中变量值发生变化 2:返回新值
若是++后 :1内存中变量值发生变化 2:返回旧值
示例:
var i = 1;
console.log(i++);//i[2]-->结果 1
var j = 1;
二、扩展赋值
=
+= -= *= /= %=
var i = 1;
i+=1;//i = i + 1;
var m = 10;
m += 2;//m = m + 2;
三、数据类型转换
数据类型:number,string,boolean,null,undefined
var a = 123;
var b = "123";
var c = 1.23;
var result = b +56; //179
一、什么是数据类型转换
容许数据在各个类型之间灵活的转变
二、隐式转换
不须要认为参与,由程序自动完成
+
var a = "123";
var b = 56;
var result = a + b; //12356
经过 typeof(参数) 函数帮助查看指定数据的类型
NaN : Not a Number 不是一个数字
isNaN() : 是否是一个数字
isNaN("abc") : true
isNaN(123) : false
三、强制数据类型转换
转换函数
一、toString()
var a = 123;
a.toString();
String(x);-->比上面更通用
var b = ""+a; //string
var c = a+""; //string
#x.toString()
#若是数据是 null 报错
#undefiend 报错
toString() vs String() *****
二、parseInt(参数)
碰到第一个非数字的字符,中止转换
若是第一个字符就是非数字的,结果为NaN
parseInt("123"); --> 123
parseInt("123ABC"); --> 123
parseInt("123.456"); -->123
parseInt("ABC123"); --> NaN
三、parseFloat(参数)
将字符串转换为小数
任意类型转换成->数字
Number(); 强制转换任意类型-》数值
parseInt(); 强制转换字符串类型->数值[整值]
parseFloat(); ..... [小数.浮点]
Number(); 转换严格
Number("");-->0
Number(true);-->1
Number(false);-->0
Number(null);--->0
Number("123");--->123
Number("12ab");-->NaN {not a number}不是一个数字
Number(未定义)------->NaN
#parseInt
#字符串转数字
#从左向右依次分析每一个字符,若是碰到第一个
非数字字符退出.
不识别小数点,小数点后内容省略
"123.90abc"
->[123]
#parseFloat
#字符串转数字
#功能同上,识点小数点保留小数点后数值
exam:
1:建立变量 保存值 true
2:转换整型数
3:建立变量 保存值 "123kk"
4:转换整型数
5:建立变量 保存值 "99.99#"
6:转换浮点数
小结:
Number 转换范围广{null/true/false/"1a3"}
parseInt 将字符串转数值
parseFloat
面试题:
Number() vs parseInt(); //区别?
四、逻辑运算
#返回值大部分也是 boolean类型
&& 而且 全部条件都为true结果true
只要有一个条件为false结果false
|| 或者 只要一个条件为true结果true
只有二个条件都为false结果false
! 不 取反
五、三目 一个两件事
判断?值1:值2;
#根据不一样条件返回不一样的值,或者执行不一样
操做..
var i = 5;
var j = 2;
var rs = i < j ? "abc":"bcd";异步
console.log(rs);