1. JavaScript学习笔记——JS基础
1. JavaScript基础
1.1 语法
严格区分大小写
标识符,第一个字符可以是 $,建议使用小驼峰法,
保留字、关键字、true、false、null不能作为标识符
JavaScript是用Unicode字符集编写的
1.2 数据类型
判断数据类型:
typeof xxx定义变量:
var xxx = yyy; 函数内部不加var可以定义全局变量可以随意改变类型var a,b,c; 定义多个变量
Number 类型:
包括整数和小数
var n=0x111;//十六进制 var n=1.2e2;//科学计数法 var n=1.0 //n=1,因为JavaScript会尽量把浮点数转换为整数,因为浮点数占的内存是整数的两倍alert(Number.MAX_VALUE) 支持最大数,MIN_VALUE最小
alert(Numver.Infinity) 无穷大
NaN(Not A Number)非法数字,不是数字,可以通过
isNaN(xx)判断,返回Boolean值alert('哈' - 1) => NaN
String 类型: 'xxx' " t'ttt "
\xnn 以十六进制代码nn表示一个字符,如:\x41表示A\unnnn 以十六进制代码nnnn表示一个Unicode字符除了 null undefined 外的所有值都有toString()方法,可以把相应的值转换为字符串形式
Boolean 类型:
通过Boolean(xxx) 转换,== 判断不出
true:非零数值,非空字符串,非null对象
false:0 空字符串,Null,Undefined
在流程控制语句(如:if),会自动转换为Boolean值
Undefined 类型:只有一个值undefined(开头字母小写),表示变量未初始化
var s;alert(s) //undefined主要用于逻辑判断
alert(typeof xx(未定义变量) ) //也会是undefined
Null类型:只有一个值null,表示空对象指针
alert(typeof null) //Object如果定义的变量准备在将来用于保存对象,那么最好把他设置为null,这样就可以判断是否为null来判断是否保存了一个对象的引用
if (xx != null){ doSomething(xx); }undefined由null衍生出来,undefined == nulll
Object 类型:
1.3 数据类型转换
toString():
var s=123; s.toString() // '123' 当以字符串形式输出某个对象时,就会自动调用对象内部的toStrong()方法null和undefined没有toString()方法。'str' + xxx => 'str'var n=9; n.toString(2);//'1001'整数变量.toString(进制),可以进行进制转换String(obj)将任何类型转换为字符串,包括null和undefined
Number():
var s='123'; alert(Number(s)) // 123 var s='haha33'; alert(s)// NaN如果字符串是一个空串或全是空格的字符串,则转换为0
null => 0 undefined => NaN true => 1
parseInt()/parseFloat():
从第一位有效数字开始,直到遇到无效数字,如果第一位不是有效数字,返回NaN
Number()函数无论字符串是否包含有效整数都会返回NaN,利用parseInt()/parseFloat()可以提取字符串中的有效整数
parseInt('123aaa') //123parseInt('100',2) //4当提供第二个参数时,代表字符串是几进制的,返回十进制
1.4 语句
//【switch语句】
//可以使用任何数据类型
switch(s){
case 'a':
case 'b': //合并了两种情形
alert("a or b");
break;
case 'c':
alert(c);
break;
default:
alert(other)
}
//【for-in语句】
//迭代出的是:数组、字符串是位置、对象是key
for(var x in 'hello'){
console.log('hello'[x]);
}
//【label语句】
//在代码中添加标签,可以由break 或 continue引用
xxx:
for(var i=0; i<10; i++){
if(i==8){
break xxx;
}
}
//【with语句】
//作用是将代码的作用域设置到一个特定的对象中
var location = {
name = 'bin'
};
var name = 'out';
with(location){
alert(name);//bin
}
alert(name);//out
1.5 操作符
布尔操作符:
逻辑非:
用
!表示,可以应用于 ECMAScript中的任何值,无论这个值是什么类型,这个操作符都会返回一个布尔值。逻辑非首先将它的操作符转换成一个布尔值,然后对其求反。! Object => false! "str" => false! "" => true! 0 => true! num => false (包括Infinity)! null => true! NaN => true! undefined => true
如果连续使用两次
!,则会模拟 Boolean() 转换函数的行为,!首先将操作数转换成布尔值再取反,然后!再取反一次,就相当于把操作数转换成了其对应的布尔值。
逻辑与:
&&如果第一个操作数转换成布尔值是false,就返回第一个操作数
如果第一个操作数转换成布尔值是true,就返回第二个操作数
false && alert(1) => falsetrue && alert(1) => alert(1)
逻辑或:
||与逻辑与相反
false || alert(1) => alert(1)true || alert(1) => true
1. JavaScript学习笔记——JS基础的更多相关文章
- JavaScript学习笔记——JS中的变量复制、参数传递和作用域链
今天在看书的过程中,又发现了自己目前对Javascript存在的一个知识模糊点:JS的作用域链,所以就通过查资料看书对作用域链相关的内容进行了学习.今天学习笔记主要有这样几个关键字:变量.参数传递.执 ...
- JavaScript学习笔记:基础知识点总结
基础概念 JavaScript(以下简称Js)中数据类型:Number 字符串 布尔值 数组 对象(Js的对象是一组由键值对组成的无序集合) Js中基础概念:变量(概念和Java中变量概念类似 指示某 ...
- JAVAscript学习笔记 js句柄监听事件 第四节 (原创) 参考js使用表
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- JavaScript学习笔记(基础部分)
一.JavaScript简介: 概念:JavaScript是一种解释性的.跨平台的.基于对象的脚本语言,一般用于客户端来给HTML页面增加动态的功能. 组成: 1.ECMAScript,描述了该语言的 ...
- JavaScript学习笔记——对象基础
javascript对象基础 一.名词解释: 1.基于对象 一切皆对象,以对象的概念来编程. 2.面向对象编程(oop Object oriented programming) A.对象 就是人们要研 ...
- 廖雪峰JavaScript学习笔记(基础及数据类型、变量)
先睹为快 alert('我要学JavaScript!'); Run: 基本语法: 1.每个语句以;结束,不强制 2.语句块用{...} 3.//单行注释,/*...*/ 多行注释 数据类型: 1.不区 ...
- JavaScript学习笔记1_基础与常识
1.六种数据类型 5种基础的:Undefined,Null,Boolean,Number,String(其中Undefined派生自Null) 1种复杂的:Object(本质是一组无序键值对) 2.字 ...
- javascript 学习笔记 -- js获取本地文件信息
JavaScript是跑在浏览器中,所以对于JavaScript读取本地文件不想c++ 和 java那样easy.网上有很多关于读取本地文件的方法,许多是用ActiveXObject控件.Active ...
- JavaScript学习笔记-Js操控HTML5 <progress> 标签
Js操控----HTML5 <progress> 标签 简单模拟下下载进度跑条 <h4>加载进度</h4> <input type="button& ...
随机推荐
- p2408 不同子串个数
传送门 分析 首先我们不难求出一共有多少子串 之后我们只需要减掉重复个数即可 于是我们对于每个后缀减去它跟它前一名的最长公共前缀即可 代码 #include<iostream> #incl ...
- sql2008 安装提示重启失败
[转] https://www.cnblogs.com/chenshaogang/p/4313022.html
- NodeJS下的阿里云企业邮箱邮件发送问题
还没有到11点,再顺带发一个上次碰到NodeJS的邮箱插件nodeMailer不支持阿里云邮件问题. 网上很多资料都默认使用QQ之类的邮箱,因为nodeMailer默认添加了QQ之类的SMTP地址,但 ...
- 【转载】Mysql中的Btree与Hash索引比较
转载地址:http://www.jb51.net/article/62533.htm 这篇文章主要介绍了Mysql中的Btree与Hash索引比较,本文起讲解了B-Tree 索引特征.Hash 索引特 ...
- C# chart.DataManipulator.FinancialFormula()公式的使用 线性回归预测方法
最近翻阅资料,找到 chart.DataManipulator.FinancialFormula()公式的使用,打开另一扇未曾了解的窗,供大家分享一下. 一 DataManipulator类 运行时, ...
- Memcache+Cookie替代Session解决方案(MVC版)
阅读目录 开始 通过IHttpModule注册过滤管道方式 通过BaseController 关于滑动过期 两种方式 回到顶部 通过IHttpModule注册过滤管道方式 具体实现如下: 声明一个类C ...
- WorkFlow 工作流 学习笔记
传统ERP为制造业企业产供销人财物的管理提供了一整套优化企业资源利用,集物流.信息流.资金流为一体的现代化管理工具.但是它在过程集成和企业间集成方面存在不足.具体表现在: 1.传统ERP是一个面向功能 ...
- Vue--axios:vue中的ajax异步请求(发送和请求数据)、vue-resource异步请求和跨域
跨域原理: 一.使用axios发送get请求 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 & ...
- windows游戏开发中一个关于Visual Studio的编译链接成功,输出窗口却显示线程已退出。无法运行项目的问题
可能是显卡驱动程序版本太高了,退回到以前的版本就ok了. 第一次遇见这个问题可把我给整疯了!! 后来又遇到一次,参考之前的解决方法,很快就搞定了!! 可见,经验可是很重要的一个东西啊.
- Android-ListView-(BaseAdapter初步)
在Android中就提供了专门列表显示条目的控件,ListView控件,ListView控件不是一次性加载全部数据,他是只加载用户在屏幕看得到的数据,当用户滑动的过程中在去加载新的数据,同时会自动销毁 ...