博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
javascript权威指南——笔记(第三章)
阅读量:6236 次
发布时间:2019-06-22

本文共 3469 字,大约阅读时间需要 11 分钟。

字符集:Unicode字符集 JS:区分大小写 标识符:指变量、函数、属性名、函数名、函数参数            第一个字符:字母、下划线、$            其后的字符:字母、下划线、$、数字            默认:驼峰命名 转义字符:   \n 换行  \t制表  \b空格  \r回车  \f换页符  \\  \'  \"
注释:单行//      多行 /**/
直接量: number、string、boolean、null、/RegExp/img
语句:以分号';'结尾(规范)
关键字、保留字:
do,while,for,in,continue,break,if,else,switch,case,default,with,try,catch,throw,true,false,null,var,new,delete,function,return,thistypeof,instanceof,void,debugger,finally//ECMAScript5新增关键字:class,const,enum,export,extends,import,super//严格模式下:arguments,evalimplements,let,private,public,yield,interface,package,protected,static
变量:    var name = value;       重复声明(是合法且无害的,重复声明带有初始化器,就跟一条简单的赋值语句没有区别)       遗漏声明(严格模式没有声明变量,会报错。)  变量作用域: 函数作用域,声明提前: 作为属性的变量:当声明一个js全局变量时,实际就是定义一个全局对象的一个属性(应该是window下的一个属性)。当使用var声明一个变量时,创建的这个属性是不可配置的,也就是说这个变量不能通过delete运算符删除。(严格模式下)  作用域链     数据类型: undefined null boolean number string           object
判断类型:
undefined: 1未定义            2定义了未赋值            3函数无return null:空对象指针(如果将来要用于保存对象,初始值为null)       注:使用.或者[]来存取undefined,null属性或方法都会报错 boolean: true false
假:0 "" false null undefined NaN
number:正无穷:Infinity         负无穷:-Infinity         Number.MIN_VALUE~~Number.MAX_VALUE(-2的53次方~2的53次方)         NaN     isNaN()         Number() parseInt() parseFloat()->string转number         十进制,十六进制(0x开头,0~9a~f),严格模式不支持八进制(0开头)         6.02e3 -> 6.02*10m³         Math对象,一些数学方法         注意小数的比较             var x = .3-.2;  0.09999999999999998             var y = .2-.1;  0.1             => x != y;         日期对象:Date()
string:''或者""         str 在ECMAScript5中,字符串可以多行显示,末尾用\
1 var str = "You need to be strong yet polite, \2            passionate yet objective, and nice to children, \3            the elderly";
str.length         toString()  (null、undefined没有这个方法)      String()      + 字符串连接
兼容用 str.charAt(num) 高级版本 str[num]
object:      全局对象:全局对象的初始属性并不是保留字,但应把他们当初保留字对待      包装对象:String();Number();Boolean(); null,undefined没有包装对象,访问他们的属性,方法会报错
var s = "test"; //创建字符串s.len = 4;      //给他设置属性    临时创建字符串对象,并给其len属性赋值为4var t = s.len;  //访问这个属性 -> undefined 通过原始的(没有被修改过的)字符串值创建一个新字符串对象,尝试读取len属性,这个属性自然不存在//这段代码说明在读取str,num,bool的属性或者方法的时候,表现的像对象一样,但如果师徒给其属性赋值,则会忽略这个操作:修改只是放生在临时对象身上,这个临时对象并未继续保留下来
 
1 var s = "text";2 var S = new String("text");3 4 alert(s == S);  //true5 alert(s === S); //false 类型不同
    不可变的原始值和可变的对象引用:     原始值:undefined,null,boolean,number,string     对象(引用类型):他的比较不是值得比较,即使两个对象包含相同的属性及相同的值,也是不等;                       对象值都是引用,对象的比较都是引用的比较,当且仅当他们引用一个对象时,他们才想等
1 var a = [];2 var b = a;3 b[0] = 1;4 a[0];5 6 a === b;//true
    如果想得到一个对象或者数组的副本,则必须显示复制对象的每个属性或数组的每个元素
1 var a = ["a","b","c"];2 var b = [];3 4 for(var i = 0,len = a.length; i
    如果想比较两个单独的对象或者数组,则必须比较他们的属性或者元素。     定义一个比较两个数组的函数:
function compareArr(a,b){    if(a.length != b.length)return false;    for(var i = 0,len = a.length; i < len; i++){        if(a[i] != b[i]) return false;    }    return true;}

   类型转换:

 

   原始值 转 对象:原始值通过调用String(),Number(),Boolean();       显示类型转换:就是调用Boolean(),Number(),String(),Object()           除了null,undefined之外任何值都有toString()方法           number->string           方法:num.toString(),num.toFixed(),n.toExponential(),n.toPrecision()           string->number           方法:Number(),parseInt(),parseFloat()      对象 转 原始值:(不懂)           object->boolean  all true           object->string(number)通过一个方法来完成                 所有的对象都继承了两个转换方法:toString()->返回一个反应这个对象的字符串                                 valueOf()->
          
 
 
 
 

 

 

转载于:https://www.cnblogs.com/wmh1106/p/4675419.html

你可能感兴趣的文章
分享27款非常精美的2012新年桌面壁纸
查看>>
Linux rm 删除指定文件外的其他文件
查看>>
android:layout_weight属性详解
查看>>
在Microsoft Windows XP中使用传真
查看>>
Javascript和HTML5 利用canvas构建 Web五子棋游戏程序设计
查看>>
学生机房虚拟化(二)定制安装宿主系统
查看>>
互斥量和条件变量
查看>>
基础入门_Python-模块和包.Gevent异步/状态获取/超时设置/猴子补丁?
查看>>
利用Java随机数计算圆周率π
查看>>
一一对应 脚本
查看>>
linux配置ntp服务器
查看>>
[Error]分布式部署SCOM安装报错——Report Services实例无效
查看>>
我的友情链接
查看>>
字符处理相关
查看>>
Linux time命令学习
查看>>
MHVTL与TSM的完美结合
查看>>
AndroidScreenSlide项目切换view动画效果
查看>>
Linux系统启动故障修复
查看>>
puppet学习—httpd+passenger安装DashBoard
查看>>
dedecms在linux下目录权限设置
查看>>