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') //123

    • parseInt('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) => false

      • true && alert(1) => alert(1)

    • 逻辑或:

      • ||

      • 与逻辑与相反

      • false || alert(1) => alert(1)

      • true || alert(1) => true

      •  

1. JavaScript学习笔记——JS基础的更多相关文章

  1. JavaScript学习笔记——JS中的变量复制、参数传递和作用域链

    今天在看书的过程中,又发现了自己目前对Javascript存在的一个知识模糊点:JS的作用域链,所以就通过查资料看书对作用域链相关的内容进行了学习.今天学习笔记主要有这样几个关键字:变量.参数传递.执 ...

  2. JavaScript学习笔记:基础知识点总结

    基础概念 JavaScript(以下简称Js)中数据类型:Number 字符串 布尔值 数组 对象(Js的对象是一组由键值对组成的无序集合) Js中基础概念:变量(概念和Java中变量概念类似 指示某 ...

  3. JAVAscript学习笔记 js句柄监听事件 第四节 (原创) 参考js使用表

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. JavaScript学习笔记(基础部分)

    一.JavaScript简介: 概念:JavaScript是一种解释性的.跨平台的.基于对象的脚本语言,一般用于客户端来给HTML页面增加动态的功能. 组成: 1.ECMAScript,描述了该语言的 ...

  5. JavaScript学习笔记——对象基础

    javascript对象基础 一.名词解释: 1.基于对象 一切皆对象,以对象的概念来编程. 2.面向对象编程(oop Object oriented programming) A.对象 就是人们要研 ...

  6. 廖雪峰JavaScript学习笔记(基础及数据类型、变量)

    先睹为快 alert('我要学JavaScript!'); Run: 基本语法: 1.每个语句以;结束,不强制 2.语句块用{...} 3.//单行注释,/*...*/ 多行注释 数据类型: 1.不区 ...

  7. JavaScript学习笔记1_基础与常识

    1.六种数据类型 5种基础的:Undefined,Null,Boolean,Number,String(其中Undefined派生自Null) 1种复杂的:Object(本质是一组无序键值对) 2.字 ...

  8. javascript 学习笔记 -- js获取本地文件信息

    JavaScript是跑在浏览器中,所以对于JavaScript读取本地文件不想c++ 和 java那样easy.网上有很多关于读取本地文件的方法,许多是用ActiveXObject控件.Active ...

  9. JavaScript学习笔记-Js操控HTML5 <progress> 标签

    Js操控----HTML5 <progress> 标签 简单模拟下下载进度跑条 <h4>加载进度</h4> <input type="button& ...

随机推荐

  1. Requests接口测试-对cookies的操作处理(二)

    我们继续来讨论一下cookie这方面的内容,我们都知道cookie是数据,一般的话在我接口测试中,数据都是要和代码进行分离的.本篇内容,我们队cookie内容进行处理,我们把登陆成功后的cookie写 ...

  2. 【转】jvm 堆内存 栈内存 大小设置

    原文地址:http://blog.csdn.net/qh_java/article/details/46608395 4种方式配置不同作用域的jvm的堆栈内存! 1.Eclise 中设置jvm内存: ...

  3. myeclipse的user library使用方法

    让myeclipse形成一个整齐划一的jar集合 这里就使用到了编辑器的user Library功能 首先,打开编辑器然后如图操作window--->preference--> 点开后如图 ...

  4. Redis实现高并发下的抢购、秒杀功能

    博主最近在项目中遇到了抢购问题!现在分享下.抢购.秒杀是如今很常见的一个应用场景,主要需要解决的问题有两个:1 高并发对数据库产生的压力2 竞争状态下如何解决库存的正确减少("超卖" ...

  5. Android Paint以及ColorFilter等

    我们可以通过Paint中大量的setter方法来为画笔设置属性: 这些属性大多我们都可以见名知意,很好理解,即便如此,哥还是带大家过一遍逐个剖析其用法,其中会不定穿插各种绘图类比如Canvas.Xfe ...

  6. HBASE与hive对比使用以及HBASE常用shell操作。与sqoop的集成

    2.6.与 Hive 的集成2.6.1.HBase 与 Hive 的对比1) Hive(1) 数据仓库Hive 的本质其实就相当于将 HDFS 中已经存储的文件在 Mysql 中做了一个双射关系,以方 ...

  7. [示例] Drag And Drop for FireMonkey (Win & macOS)

    源码下载: https://github.com/OneChen/DragAndDrop 效果:

  8. CentOS下Docker与.netcore(五)之 三剑客之一Docker-swarm集群

    CentOS下Docker与.netcore(一) 之 安装 CentOS下Docker与.netcore(二) 之 Dockerfile CentOS下Docker与.netcore(三)之 三剑客 ...

  9. oracle所有的乱码解决方案

    oracle所有的乱码解决方案 是不是经常看见各式各样的乱码,看见头就大了,大家别怕,所有的问题都会有一个甚至不止一个的解决方案,有句名言说的好:万法不离其踪.网上大部分把工具的乱码和代码操作的乱码混 ...

  10. 网易对象存储NOS图床神器

    本文来自网易云社区 注:使用过程中有什么问题或建议欢迎到如下链接提交:http://note.youdao.com/noteshare?id=6321086fa4d7a6c003656354c1aa6 ...