JavaScript学习笔记-基础语法、类型、变量
基础语法、类型、变量
非数字值的判断方法:(因为Infinity和NaN他们不等于任何值,包括自身)
1、用x != x ,当x为NaN时才返回true;
2、用isNaN(x) ,当x为NaN或非数字值时,返回true;
3、用isFinity(x),在x不是NaN、Infinity、-Infinity时返回true;
虽然(字符串、数字、布尔值)不是对象,他们的属性是只读的,但也可以像操作对象一样来引用他们的属性和方法,原理:
javascript构造一个(String、Number、Boolean)的临时对象(称为包装对象),然后通过这个临时对象来调用它的属性和方法,这些属性、方法改变的只是这个临时对象,随后这个临时对象会被销毁,所做的改变不影响原数据;
可以显式的构造一个包装对象,它的值和原数据相等 ‘==’,但类型不同 ‘===’
数字a 转 字符串:
a.toString(n) //n表示进制
a.toFixed(i) a.toExponential(i) a.toPrecision(j) //i为小数位数,j为要显示位数
字符串s 转 十进制数字:(忽略前置的空格,尽可能多的转换数字,忽略后面的非数字内容,其中'0X'、'0x'开头的则把它当着16进制数来转换)
parseInt(s,[n]) //n表示进制,可选参数,把s当着n进制数来转为十进制数
parseFloat(s,[n])
对象 自动转 字符串步骤:
1.若有toString()方法,且它能返回原始值,则调用它,将返回的原始值转字符串;
2.若第一步无效,则调用valueOf(),将返回的原始值转字符串;
3.前两不均无效,则抛出类型错误异常;
对象 自动转 数字步骤:
1.若有valueOf(),则调用它,将返回的原始值转数字,可返回这个数字;
2.若1无效,则尝试调用toString(),将返回的原始值转数字并返回该数字;
3.若1、2均无效,则抛出类型错误异常;
Date对象是个例外
变量声明提前:
调用未声明的变量,编译时会把变量的声明部分提前,而把初始化部分留在原地;
(重复声明的变量,局部的将覆盖外部的)
var s1 = 'ggggg';
function f() {
console.log(s1); //s1 == undefined
var s1 = 'cccccc';
console.log(s1); //s1 == 'cccccc'
}
位运算:& | ^ ~
&:按位与,对左右两个整型操作数执行AND操作,仅当对应位都为1时,结果为1;
|:按位或,对应位有一个为1,则结果为1;
^:按位异或,对应位一样则为0,不一样则为1;
~:按位取反,一元运算符,所有位取反,相当于改变符号并减1;
(n是0~31之间)
<<n:所有位左移n位,即将值乘以2的n次方,舍弃最左n位,用0来补充右边n位;
>>n:所有位右移n位,忽略右边溢出位,填补左边位有原操作数决定,结果相当于除2的n次方,舍弃余数,7>>1=3 , -7>>1=-4
<<<n:同<<,只是用0来填补左边位
字符串之间的比较大小:
JavaScript字符串是一个由16位整数值组成的字符系列,字符串的比较的是它们的字符的数值,大小写的字符的数值不同;
比较运算符偏爱数字,只要有一个操作数为数字,就做数字运算,只有当两个都为字符串时,才做字符串比较
而‘+’运算符则偏爱字符串,只要有一个操作数为字符串,就做字符串连接运算
x in p
检查对象p内是否存在属性x,包括方法
a instanceof A
检查对象a是否是类A的一个实例,包含对其父类的检测
假值:false、 null、 undefined、 0 、-0 、NaN ""
真值:除了以上的值,其他值均为真值;
对象:除了字符串、数字、true、false、null、undefined之外,其他值都是对象!
JavaScript学习笔记-基础语法、类型、变量的更多相关文章
- JavaScript学习02 基础语法
JavaScript学习02 基础语法 JavaScript中很多基础内容和Java中大体上基本一样,所以不需要再单独重复讲了,包括: 各种算术运算符.比较运算符.逻辑运算符: if else语句.s ...
- JavaScript学习笔记——JS中的变量复制、参数传递和作用域链
今天在看书的过程中,又发现了自己目前对Javascript存在的一个知识模糊点:JS的作用域链,所以就通过查资料看书对作用域链相关的内容进行了学习.今天学习笔记主要有这样几个关键字:变量.参数传递.执 ...
- JavaScript学习笔记(八)——变量的作用域与解构赋值
在学习廖雪峰前辈的JavaScript教程中,遇到了一些需要注意的点,因此作为学习笔记列出来,提醒自己注意! 如果大家有需要,欢迎访问前辈的博客https://www.liaoxuefeng.com/ ...
- JavaScript 学习笔记: 扩充类型的功能
JavaScript 是允许给基本类型扩充功能的.例如,可以通过对Object.prototype增加方法,可以让该方法对所有的对象都可用. 这样的方式对函数,数组,字符串,数字,正则表达式和布尔值同 ...
- JavaScript 学习笔记(基础学习)
一:来自W3School工具的学习 1:document.getElementById(id) : 访问某个标签的元素,然后对它进行操作 .innerHTML 对其内容进行修改 2:document. ...
- Python学习笔记——基础语法篇
一.Python初识(IDE环境及基本语法,Spyder快捷方式) Python是一种解释型.面向对象.动态数据类型的高级程序设计语言,没有编译过程,可移植,可嵌入,可扩展. IDE 1.检查Pyth ...
- Java学习笔记-基础语法
Java基础包含关键字,标识符,注释,常量和变量,运算符 关键字 关键字的定义和特点 定义:被Java语言赋予了特殊含义的单词 特点:关键字中所有字母都为小写 Java的关键字 用于定义数据类型的关键 ...
- Java学习笔记-基础语法Ⅹ-进程线程
学习快一个月了,现在学到了黑马Java教程的300集 打印流的特点: 只负责输出数据,不负责读取数据 有自己的特有方法 字节打印流:PrintStream,使用指定的文件名创建新的打印流 import ...
- Java学习笔记-基础语法Ⅳ
多态:同一个对象,在不同时刻表现出来的不同形态 例如: 猫 cat = new 猫(); 动物 animal = new 猫(); 这里的猫在不同时刻表现出来不同的形态,这就是多态 多态的前提和体现: ...
随机推荐
- 如何使用office2010插入屏幕截图
当我们习惯了用QQ的屏幕截图之后,当某一天我们在一台没有装QQ的办公电脑上,它装着office2010,我们可以实现用office来截图吗?其实Office2010深藏着犀利的截图工具. 插入图片到文 ...
- Zip文件中文乱码问题解决方法(MAC->Windows)
前言: 最近收到的ZIP交互原型,打开查看中文一堆乱码.主要是产品都是高大上啊,用的都是MAC,咱酷毙用的Windows,话说安卓APP,你用MAC搞啥啊.可恨的压缩用的是zip,不是rar之类的.为 ...
- [New Portal]Windows Azure Virtual Machine (14) 在本地制作数据文件VHD并上传至Azure(1)
<Windows Azure Platform 系列文章目录> 之前的内容里,我介绍了如何将本地的Server 2012中文版 VHD上传至Windows Azure,并创建基于该Serv ...
- HT For Web 拓扑图背景设置
HT For Web 的HTML5拓扑图组件graphView背景设置有多种途径可选择: divBackground:通过css设置graphView对应的div背景 Painter:通过graphV ...
- Ajax PHP项目实战
这两天在实验楼学习ajax,后台是用php写的,下面我将三个实战项目分享出来,也方便我以后随时查看. 第一个项目我写的注释比较详细,第二个和第三个注释就写的比较少了,因为用的方法都差不多:这三个项目都 ...
- DedeCMS学习
也许有些读者并不了解dedecms,这里简单介绍一下:DedeCMS是一个自由和开放源码的内容管理系统,它是一个可以独立使用的内容发布系统(CMS).织梦内容管理系统(DedeCms) 以简单.实用. ...
- SQL 聚合函数
SQL聚合函数 MAX---最大值 MIN--最小值 AVG--平均值 SUM--求和 COUNT--记录的条数 EXample: --从MyStudent表中查询最大年龄,最小年龄,平均年龄,年龄的 ...
- XML基础学习02<linq to xml>
Linq to XML的理解 1:这是一种比较好的操作Xml的工具. àXDocument 文档 àXElement 元素 àXAttribute 属性 àXText 文本 2:这里还是和我们之前创建 ...
- C# 目录(文件夹)复制实现
private static void CopyDir(DirectoryInfo origin, string target) { if (!target.EndsWith("\\&quo ...
- C#-INotifyPropertyChanged(解决数据绑定的界面刷新问题)
最近做项目用到DataGridView,用它绑定数据源后,如果数据源中的数据修改无法及时刷新到控件上,必须切换单元格的焦点才能导致刷新显示新数值,通过查官方文档,用INotifyPropertyCha ...