JS学习笔记Day1
一、JS概述
1.什么是JS?
是一种基于对象和事件驱动的客户端脚本语言;
运行环境:浏览器(通过浏览器解释执行)
2.JS产生于哪一年,哪个公司,是谁?第一个名字是什么?
1995年,网景公司、布兰登、liveSpcript
3.W3C第一个标准是什么?
ECMA-262
4.JS包含哪几部分?
1)ECMAScript
2)DOM
3)BOM
二、页面中如何引入JS?
1.行内引入脚本(事件)(不推荐)
2.内部引入脚本<script></script>
3.外部引入脚本<script src="index.js"></script>
注:外部引入时,script标签中尽量不要写任何内容,如果写了,也不会执行
三、JS中有哪些输出方法?
1.alert():以警告框的方式输出,执行到alert是,会中断后面程序的执行(一次只能输出一个值)
2.document.write():输出在页面中,会影响到页面的布局
3.console.log():输出在控制台中,不会影响用户体验,是程序员最常用的排错工具,他可以输出对象的详细信息(可以输出多个值)
注:JS输出方式注意的事项
如果输出的是字母或者中文,用引号包起来,引号可以是单引也可以是双引;
如果输出的是数字,引号可加可不加;
如果输出的是变量,一定不能加引号;
如果输出的有字符串和变量,字符串和变量之间用+号进行连接
四、如何换行?
页面中换行:<br>
JS中换行:\n
扩展:转义字符 \
\t :空格(8格)相当于键盘上的tab
五、注释
//单行文本注释
/*多行文本注释*/
六、JS中数据类型有哪些?
基本数据类型:Number(数值) String("字符串" '字符串') Boolean(true,false)
特殊数据类型:null(对象为空) undefined(基本数据类型为空)
复合数据类型:Object(对象)
七、标识符的命名规则有哪些?
1.命名中只能包含字母、数字、下划线、$、中文(不推荐)
2.不能以数字开头
3.不是保留数字或关键字
4.具有相关含义,语义化命名
5.驼峰式命名
大驼峰:每个单词的首字母大写的命名方式
小驼峰:出第一个单词的首字母小写,其余每个单词的首字母大写的命名方式
6.匈牙利命名法:
int iNum
float fNum
boo
字符串 str
char ch
Object obj
function fn
八、什么是变量与常量?
1.变量:在内存中开辟一块空间,用于存储数据,在程序运行的过程中,这个数据有可能发生变化,所以称为变量
2.常量:永恒不变的量
九、如何声明变量?
1.显式声明:var 变量名 = 3,变量名1,变量名2...;
2.隐式声明: 变量名 = 5 ;
十、如何给变量赋值?
1.初始化变量(给变量赋初值):声明变量的同时,给他赋值
2.先声明,后赋值
十一、运算符
1.递增递减运算符
++ --
逻辑思想:从左到右计算,先遇到变量,则先取变量的值参与其他运算,然后再自增或自减1;如果先遇到++或--,则先将变量中的值+1或-1,再参与其他运算
2.算术运算符
* :乘
逻辑思想:
1)Number类型之间的相乘,正常运算
2)Number/String 与String相乘,先将String类型转化为Number类型,再相乘;如果是数字字符串可以正常转为数字;如果是含有非数字的东西,转换失败,转换成了NaN,乘NaN结果都是NaN
3)true:1 false:0 null:0再计算
4)undefined/NaN,结果为NaN
/:除
逻辑思想:同乘法
注:非0的数/0:infinity(无穷尽);0/0:NaN
%:模(取余)
逻辑思想:同乘法
-:减
逻辑思想:同乘法
+:加
逻辑思想:1.如果加号两边有字符串,则起连接作用,连接成新的字符串;
2.除第一条以外,true:1;false:0;null:0
3.除第一条以外,underfined NaN 结果都为NaN
3.关系运算符
> : 大于 < : 小于 >= : 大于或等于 <= : 小于或等于
逻辑思想:1. Number之间比较,正常比
2. Number与String之间比较,先将String转为Number,再比较
3. String之间比较: 从左到右依次比较每一个字符
4. true : 1 false : 0 null : 0 进行比较
5. undefined/NaN false
== : 等于 != : 不等于 === 全等(恒等) !== 不全等(不恒等)
== 和 != : 只比较结果 3 == '3'
=== 和!== : 先比较数据类型,再比较结果 3 === '3'
切记:console.log(null == 0); //false
console.log(null == false); //false
console.log(null == ''); //false
console.log(null == undefined); //true
console.log(null === undefined); //false
4.逻辑运算符(0,false,'',null,undefined,NaN)
! : 非
逻辑思想:非真即假,非假即真
注:0、false、null、undefined、NaN、" "都为假
&& : 与
逻辑思想:如果&&左边表达式的值为true时,则返回右边表达式的值
如果&&左边表达式的值为false,短路,则返回左边表达式的值
|| : 或
逻辑思想:如果||左边表达式的值为true时,短路,则返回左边表达式的值
如果||左边表达式的值为false时,则返回右边表达式值
5.三元运算符(三目运算符、条件运算符)
格式:表达式1 ? 表达式2 : 表达式3
逻辑思想:先计算表达式1的值,值为true时,执行?后面的表达式2,值为false时,执行:后面的表达式3
6.赋值运算符
1)简单赋值 =
2)复合算数赋值:+=、-=、*=、/=、%=
逻辑思想:先取运算符左边变量中的值,然后与运算符右边表达式的值进行相应的算术运算,最后将结果再次赋值给左边的变量。
7.特殊运算符
1)typeof :检测数据类型
console.log(typeof 3); //"number"
console.log(typeof '3'); //"string"
console.log(typeof true); //"boolean"
console.log(typeof false); //"boolean"
console.log(typeof null); //"object"
console.log(typeof undefined); //"undefined"
console.log(typeof NaN); //"number"
console.log(typeof typeof 3); //"string"
console.log(typeof typeof 3 + 3 - 4); //NaN
2)new : 创建对象
8. 优先级:
++ -- ! typeof new
* / %
+ -
> < >= <=
== != === !==
&&
||
?:
= *= /= %= += -=
十二、数据类型转换
1. parseInt('字符串',整数) : 将以有效数字开头的字符串转为整数,否则转为NaN
注:第二个参数整数的范围是 2~36 进制
1)如果省略第二个参数或第二个参数是0时,默认第一个参数是10进制
2)如果第二个参数 小于2 或大于36时,结果都是NaN
2. parseFloat() : 强制将以有效数字开头的字符串转为小数,否则转为NaN
3. Number() : 将所有有效数字字符串转为数字,否则转为NaN;特殊:false转为0,true转为1
4.Boolean():强制将某个类型转成布尔类型;0、false、null、undefined、NaN、" "都为假
5.名称.toString():强制将某个类型转成字符串类型;注:不需要参数
扩展:
6.isNaN() :判断是否是NaN,如果是,返回true,否则返回false
7.eval() :解析字符串,并返回表达式的结果
十三、代码规范
1. 运算符两边各加一个空格
2. 写在大括号中的语句,要缩近一个tab键
十四、prompt输入对话框
格式:var name = prompt("请输入一个数","默认值");
特点:一个输入框,一个确定按钮,一个取消按钮
拓展:.tofixed(n)保留n位小数
JS学习笔记Day1的更多相关文章
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
- Vue.js学习笔记(2)vue-router
vue中vue-router的使用:
- JS 学习笔记--9---变量-作用域-内存相关
JS 中变量和其它语言中变量最大的区别就是,JS 是松散型语言,决定了它只是在某一个特定时间保存某一特定的值的一个名字而已.由于在定义变量的时候不需要显示规定必须保存某种类型的值,故变量的值以及保存的 ...
- WebGL three.js学习笔记 使用粒子系统模拟时空隧道(虫洞)
WebGL three.js学习笔记 使用粒子系统模拟时空隧道 本例的运行结果如图: 时空隧道demo演示 Demo地址:https://nsytsqdtn.github.io/demo/sprite ...
- WebGL three.js学习笔记 法向量网格材质MeshNormalMaterial的介绍和创建360度全景天空盒的方法
WebGL学习----Three.js学习笔记(5) 点击查看demo演示 Demo地址:https://nsytsqdtn.github.io/demo/360/360 简单网格材质 MeshNor ...
- WebGL three.js学习笔记 创建three.js代码的基本框架
WebGL学习----Three.js学习笔记(1) webgl介绍 WebGL是一种3D绘图协议,它把JavaScript和OpenGL ES 2.0结合在一起,通过增加OpenGL ES 2.0的 ...
- vue.js 学习笔记3——TypeScript
目录 vue.js 学习笔记3--TypeScript 工具 基础类型 数组 元组 枚举 字面量 接口 类类型 类类型要素 函数 函数参数 this对象和类型 重载 迭代器 Symbol.iterat ...
- 2019-4-29 js学习笔记
js学习笔记一:js数据类型 1:基本数据类型 number类型(整数,小数) String类型 boolean类型 NaN类型其实是一个nu ...
- 一点感悟:《Node.js学习笔记》star数突破1000+
写作背景 笔者前年开始撰写的<Node.js学习笔记> github star 数突破了1000,算是个里程碑吧. 从第一次提交(2016.11.03)到现在,1年半过去了.突然有些感慨, ...
随机推荐
- npm安裝、卸載、刪除、撤銷發佈包、更新版本信息
利用npm安裝包: 全局安裝:npm install -g 模塊安裝 局部安裝(可以使用repuire(‘模塊名’)引用):npm install 模塊名稱 如果權限不夠,就是用管理員方式安裝. 本地 ...
- vuex2.0 基本使用(2) --- mutation 和 action
我们的项目非常简单,当点击+1按钮的时候,count 加1,点击-1按钮的时候,count 减1. 1, mutation The only way to actually change state ...
- Ubuntu 16.04配置Java Web开发环境
说明:在Linux下无论是开发还是服务器配置,我个人建议都安装二进制包版本的,优点:配置清晰,容易发现问题,性能调优方便等.缺点:配置太复杂.而其余平台的建议是一键安装版本,毕竟都是用于测试的,不会实 ...
- oracle复习(一)
一.系统操作cmd->sqlplus / as sysdba; //以管理员身份登录数据库alter user system account unlock; //解锁用户systemalter ...
- BZOJ3435[Wc2014]紫荆花之恋——动态点分治(替罪羊式点分树套替罪羊树)
题目描述 强强和萌萌是一对好朋友.有一天他们在外面闲逛,突然看到前方有一棵紫荆树.这已经是紫荆花飞舞的季节了,无数的花瓣以肉眼可见的速度从紫荆树上长了出来.仔细看看的话,这个大树实际上是一个带权树.每 ...
- P1508 Likecloud-吃、吃、吃
数字金字塔3条路 f[i][j]=max(max(f[i-1][j],f[i-1][j-1]),f[i-1][j+1])+a[i][j]; #include<bits/stdc++.h> ...
- Matplotlib学习---用matplotlib画直方图/密度图(histogram, density plot)
直方图用于展示数据的分布情况,x轴是一个连续变量,y轴是该变量的频次. 下面利用Nathan Yau所著的<鲜活的数据:数据可视化指南>一书中的数据,学习画图. 数据地址:http://d ...
- FPGA中亚稳态相关问题及跨时钟域处理
前言 触发器输入端口的数据在时间窗口内发生变化,会导致时序违例.触发器的输出在一段时间内徘徊在一个中间电平,既不是0也不是1.这段时间称为决断时间(resolution time).经过resolut ...
- 「CodeForces 581D」Three Logos
BUPT 2017 Summer Training (for 16) #3A 题意 给你三个矩形,需要不重叠不留空地组成一个正方形.不存在输出-1,否则输出边长和这个正方形(A,B,C表示三个不同矩形 ...
- python学习日记(函数基础)
修改文件(原理)--回顾 #修改文件(原理) with open('name','r',encoding='utf-8') as f,\ open('password','w+',encoding=' ...