1-简介
》什么是javascript?
>javascript可以运行在浏览器上面,实现类似的:搜索、登陆、表单等属性
》js文件不需要编译,可以直接运行。
》js文件从上到下解析,并且出现错误的时候会报错(浏览器报错)- html 有语法错误不会报错
》弱类型语言
》JavaScript特殊的地方在于它也可以作为服务器端代码执行,但是需要搭建Node环境。node hello.js //运行该文件
》javaScript是区别大小写的。
2-语法
》html:内部> ; 外部引用
》变量的声明: p
var const ?
》注释:
-》 //
-》 /**/
》组成
·ECMAScript5 (es5)(核心) --> es6 区别?
-》es6是javascript的语法标准
-》变量
-》注释
-》操作符
-》数组
-》函数
-》对象
-》高级面向对象
·应用程序编程接口(API)
·DOM文档对象模型
-》获取dom元素
-》绑定事件
-》监听
·BOM浏览器对象模型
-》使用js操作浏览器
定时器
对话框
存储
·其他apl
·其他第三方API
》命名规则
》变量不可以是关键词、保留字
》变量以数字、字母、下划线、$组成;不可以一数字、下划线开头
》初始化:
》var 的声明和初始化可以分开使用
》const 的声明和初始化不可以分开使用
》数据类型
》基本数据类型 -》存放在栈,栈区存放的是应用数据类型
数字Number
字符串String (一般情况下,单引号和双引号没有区别)
布尔Boolean
null
Undefined
》引用数据类型 -》存放在堆
数组
对象
函数
》基本数据类型的转换
》其他类型转化为string
·类型.toString(); /获取/number\Boolean 的 string类型表现形式
·String(); //将基本类型转化为string类型
.通过+
PS:加法 +(m + n)
>当m,n不为String,Object类型的时候,先将m,n转换为Number类型,然后再进行计算
null + undefined; //NaN;Number(undefined) -> NaN
>当m,n有一个为String,无论另一个操作数为何(但不为对象)都要转换为String,然后再进行拼接
>当m,n 有一个为对象,如果该对象既重写toString,又重写了valueOf方法,先调用valueOf方法获取返回值,将该返回值和另外一个操作数进行运算。如果该对象没有重写valueOf方法,将调用toString方法获取返回值,将该返回值和另外一个操作数进行运算。
var o = {name:“briup”,valueOf:function(){return “1”;}}
o+1; //“11”
>在进行算术计算时,所有以八进制十六进制表示的数值都会被转换成十进制数值。
>保存浮点数需要的内存是整数的两倍,因此ECMAScript会不失时机将浮点转换为整数
》其他类型转化为Boolean
·Boolean();//任意类型都可以转换
·!!
》其他类型转化为number
·Number();
--------------
console.log("----String");
var a1 = true;//10
console.log(a1.toString());//“true” 10 (tostring不可以使用undefined null)
var a2 = null;
console.log(String(a2));//“null”
var a3 = ‘string’;
console.log(a3+a1);//“stringtrue”
console.log("----Boolean");
var b1 = 10;
var b2 = "Boolean";
var b3 = undefined;
var obj = {name:obj};
console.log(Boolean(b1),Boolean(b2),Boolean(b3));//true true false
console.log(!!b1,!!b2,!!b3);//true true false
console.log('----Number');//符号出现在首位则忽视,出现在其他位置输出NaN (八进制不会被识别,直接看作十进制,十六进制被转化成十进制)
console.log(Number(true),
Number(false),
Number(null),
Number(undefined),
Number(10));//1 0 0 NaN 10 (字符转化为NaN)
console.log(Number("1+2.3"),
Number("+12.3"),
Number("010"),
Number("0xa"),
Number(""));//NaN 10 a的十进制 (空字符转化成NaN)0 符号出现在首位则忽视,出现在其他位置输出NaN
console.log(parseInt("+10.23"),
parseInt("10.23+34.0),
parseInt(""));
//输出整数,遇到符号的时候就不输出符号后面的内容(首位为符号的则直接看不见首符号)空字符转化成NaN,
console.log(parseFloat("+1334.23+34.21"));
》一些函数
·isFinite();//数值范围检测
·isNAN();//检测变量是否是非数字
·typedof();//判断为何基本数据类型
》运算符
》算术运算符
+ - * / %
》一元运算符
++ –
= *= -= += /= %=
+ -
》比较运算符
=== !== >= <= > <
== 会自动进行类型转换,而===不会自动进行自动转换
》逻辑运算符
&& || !
》三元运算符
m>n?m:n
3-控制语句
-----------------------------其他
1-如何卸载插件(putty)
·cd .spf13-vim-3/
· ./uninstall.sh
2-vi编辑器(putty)
》模式
》命令行模式 【命令行输入 i(在当前行编辑) 或者 o(在下一行编辑) 进入到编辑模式】
删除:dd //删除当前行
复制:yy
粘贴:p
撤回:u
》编辑模式 【最下方有insert】【按下 esc 进入到底行模式】
》底行模式 【可以输入:】
:wq //保存并且推出
:q //退出
:wq! //保存并且强制退出
:q! //强制退出
-----------------------------js学习参考
1-文档
》MDN
》freecode(刷题)
2-书籍
》《javascript高级程序设计》
作业:
分别使用while/do-while/for循环实现10的阶乘(使用递归算法)。
有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
var result = 1;
for(var i=10;i>=1;i–){
result *= i
}
console.log(“10的阶乘是:”);
console.log(result);
var result1 = 1;
for(var i=1;i<=4;i++){
for(var j=1;j<=4;j++){
for(var k=1;k<=4;k++){
if(i != k && i != j && k!=j){
console.log(i100+j10+k)
}
}
}
}