基础语法、类型、变量

 

非数字值的判断方法:(因为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学习笔记-基础语法、类型、变量的更多相关文章

  1. JavaScript学习02 基础语法

    JavaScript学习02 基础语法 JavaScript中很多基础内容和Java中大体上基本一样,所以不需要再单独重复讲了,包括: 各种算术运算符.比较运算符.逻辑运算符: if else语句.s ...

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

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

  3. JavaScript学习笔记(八)——变量的作用域与解构赋值

    在学习廖雪峰前辈的JavaScript教程中,遇到了一些需要注意的点,因此作为学习笔记列出来,提醒自己注意! 如果大家有需要,欢迎访问前辈的博客https://www.liaoxuefeng.com/ ...

  4. JavaScript 学习笔记: 扩充类型的功能

    JavaScript 是允许给基本类型扩充功能的.例如,可以通过对Object.prototype增加方法,可以让该方法对所有的对象都可用. 这样的方式对函数,数组,字符串,数字,正则表达式和布尔值同 ...

  5. JavaScript 学习笔记(基础学习)

    一:来自W3School工具的学习 1:document.getElementById(id) : 访问某个标签的元素,然后对它进行操作 .innerHTML 对其内容进行修改 2:document. ...

  6. JavaScript学习笔记-实现枚举类型,扑克牌应用

    //实现枚举类型,扑克牌应用 function creatEnum(p){     //构造函数     var Enumeration = function(){throw 'can not Ins ...

  7. python学习笔记--基础语法

    等待用户输入 #!/usr/bin/python raw_input("\n\nPress the enter key to exit.") 简单的判断 #!/usr/bin/py ...

  8. JavaScript:学习笔记(7)——VAR、LET、CONST三种变量声明的区别

    JavaScript:学习笔记(7)——VAR.LET.CONST三种变量声明的区别 ES2015(ES6)带来了许多闪亮的新功能,自2017年以来,许多JavaScript开发人员已经熟悉并开始使用 ...

  9. javascript学习笔记(四) Number 数字类型

    数字格式化方法toFixed().toExponential().toPrecision(),三个方法都四舍五入 toFixed() 方法指定小数位个数  toExponential() 方法 用科学 ...

随机推荐

  1. 【BZOJ-4316】小C的独立集 仙人掌DP + 最大独立集

    4316: 小C的独立集 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 57  Solved: 41[Submit][Status][Discuss] ...

  2. iOS FMDB 不需要关闭

    以前做了一个应用,里面用到了FMDB,进行每一次操作前,都open,完成操作后都close.因为我是参考他们以前的代码.程序初期没发现什么问题,程序完成后,各种卡顿就出现了!即使我是放在新线程里操作的 ...

  3. HTML5 canvas globalCompositeOperation绘图类型讲解

    我们总是将一个图形画在另一个之上,大多数情况下,这样是不够的.比如说,它这样受制于图形的绘制顺序.不过,我们可以利用 globalCompositeOperation 属性来改变这些做法.global ...

  4. MULTIBYTETOWIDECHAR的与WIDECHARTOMULTIBYTE的参数详解及相互转换

    第一个就是宽字符到多字节字符转换函数,函数原型如下: int WideCharToMultiByte( UINT CodePage, DWORD dwFlags, LPCWSTR lpWideChar ...

  5. MVC 4 网页版发送 邮件的配置问题

    有时项目要用到邮箱验证就要发送邮件传统的解决方案: public void SendResetPasswordEmail(string email) { MailAddress from = new ...

  6. MAC安裝《Genymotion Android模擬器》大玩Android APP (神魔之塔)

    链接地址:http://www.minwt.com/mac/10083.html/comment-page-2 MAC» 智慧型裝罝» Android | 2014/02/12 Android是一個開 ...

  7. Amazon Aurora解读(SIGMOD 2017)

    Amazon在SIGMOD 2017发表了论文<Amazon Aurora: DesignConsiderations for High Throughput Cloud-Native Rela ...

  8. php正则表达式,在抓取内容进行匹配的时候表现不稳定

    最近做了一个 抓取内容的程序,使用php的正则表达式对抓取的内容进行匹配,当进行大量匹配运算的时候,发现偶尔会出现匹配失败的情况.检查不出任何原因. 匹配失败导致匹配结果为空,最终导致写入数据库失败. ...

  9. 【实验吧】CTF_Web_简单的SQL注入之2

    直接输入11'报语法错误,然后输入1' and '1'='1 报SQLi detected!,说明有防护,输入1'and'1'='1回显ID: 1'and'1'='1  name: baloteli ...

  10. BZOJ_1316_树上的询问_点分治

    BZOJ_1316_树上的询问_点分治 Description 一棵n个点的带权有根树,有p个询问,每次询问树中是否存在一条长度为Len的路径,如果是,输出Yes否输出No. Input 第一行两个整 ...