js笔记01

js编写页面特效动态脚本类型的语言
变量:存储数据(日常生活中的东西,比如电视,手机,电脑,出生年份。。。)
语法:
var obj=value;
obj不能为数字开头,且区分大小写
value对应数据类型,如number string bool null undefined
概念
内存中存储一个数据的存储空间,并起一个别名
使用
创建
通过var方式 加上一个别名
var obj;
赋值
将等号右边的数据保存到等号左边
obj=value;
取值
在任何位置使用变量名造次使用变量中的值
console.log(obj);
简写:var obj=value;
****
声明提前
在执行程序之前,js引擎会预读所有var声明的变量
集中到顶部创建,赋值会留在原地
原来的
console.log(i);//undefined
var i=0;
console.log(i);//0
引擎修改后
var i;
console.log(i);//undefined
i=0;
console.log(i);//0
仅声明未赋值,会出现一个undefined
var obj;//undefined
仅赋值未声明(强烈不建议使用,虽然不会出错)
m=12;
未赋值未声明 obj is not defined
k
原型类型(基本类型)
number:数值
var s1=1,s3=2.5;
特殊情况:舍入误差
可能在计算过程上,可能会出现计算不尽的情况,通过
四舍五入方式来处理:i.toFixed(int)
占用8字节
1kb=1024b
1gb=1024mb;
string:字符串
通过引号(双,单)都可以的
使用了国际标准:unicode
一旦创建无法修改,只能创建或者替换
一个英文,数字占1b,一个汉字2b
什么情况下使用数字(原因是数字运算快)
比如价格,数量,年龄等,只要不含非数字的都使用number
只要含有非数字的都使用string
boolean:布尔
true--1
false--0
undefined:未定义
null:空
其他:
强类型:开发大型底层应用 :c ,c++ java

弱类型:开发高层应用(网页):js,python ,php
特点
声明变量时,无须指定数据类型
同一个变量,可以先后使用不同的数据类型
它会根据自身情况,‘自动‘的进行数据类型的转换

自动(隐式)转换
不需要程序员干预的,js自动帮我们程序员完成的
算数运算中
+,-,*/ %
默认情况下,会将数据转换成数字,然后计算
var s1=1,s2=‘2‘;
s2-s1 s2*s1 s2/s1 ....
+(重点)
如果2个变量进行计算时,其中一方
是字符串,那么就采用字符串拼接
如果转换不成数字,NaN(not a Number)
手动(强制)转换
程序员通过调用某些函数来完成类型的操作
任意类型转字符串的2个方法
x.toString():(除null和undefined外的其他都可以处理和面向对象的时候)
String(x):万能的(隐式处理)
typeof(obj):用于判断数据的类型
x.valueOf():只能 获取变量的内部值,进行类型转换
任意类型转数字
Number(x):(自动转换,只转换为纯数字的)
特殊:
null 0
‘‘ 0
true
针对字符串的--数字
parseInt(x)
从左到右,依次读取X中数字字符串直到碰到
第一个非数字字符串就退出
无法识别小数部分
自动跳过空字符串
parseFloat(x)
识别小数的
将字符串转换为数值
Number与parseXXX;
前一个是万能的 ,后一个是字符串
如果字符串结尾有位置,使用后一个
任意类型转布尔
除0 NaN,null,undefined,‘‘-->false;
其他为true

算数运算符:+ -* /% ++ --
%求余
先整除,再取除不尽的余数部分
10%3=1
步骤:1:10/3=3;
2:余数为1
何时使用:
判断能否被某个数整除时
比如说,能被2整除的
4,5,6,7,8,9,10 %2==0
被2整除余数是否是0
限制运行结果的上限时
比如我要限制3到
3,4,5,6,6,7,8/3
++ --(自增1,自减1)
将结果保存给变量
如果++,--在程序叫独立一行使用的话
i++ ++i的情况是一样的
如果参与运算如下
++i返回新值
i++返回旧值
var s=1;
console.log(s++ + s++ + s++ + s++)
1 2 3 4
如果是旧值,那么第一位返回1 ,从第2位开始加1

如果是新值的话,从第1位开始直接加1,如下
console.log(++s + ++s + ++s)
2 3 4

console.log( s++ + ++s + ++s + s++)
1+(1+1+1) (3+1) (4+1)

a++ + a++ + ++a + ++a
3+(3+1)+(4+1)
var a=1;
console.log( a++ + ++a + a++ + a++ + ++a );
//1+3+4+3+6=10+7
我的想法是将相同的如a++先进行计算 ,接着把++a的进行计算
最后将2个结合
如果前面的值已经加过了,那么继续累加的记录会给后面+1,以此类推
关系运行:做比较!返回boolean类型false true
> < >= <= != ==相等 ===全等 !==全不等
NaN不等于,不大于,不小于任何值(包括自己)
判断isNaN(x)如果是NaN的话,返回true 否则false
与任何数据做!=比较永远为true
null:主动清空一个变量(内存)
undefined:所有变量默认值
==无法判断null,undefined
原因是==自带自动转换‘‘
===可以解决不自动转换
关系运算符
> < <= == != === !==
将多个关系运行综合得出的结论
做判断时返回true/false bool
&&与 所有条件为true则为true
||其中一个条件为true则为true
!取反

时间: 2024-08-07 20:54:27

js笔记01的相关文章

JS笔记-01

一.Javascript概述(知道) a.一种基于对象和事件驱动的脚本语言 b.作用: 给页面添加动态效果 c.历史: 原名叫做livescript.W3c组织开发的标准叫ECMAscipt. d.特点: 1). 弱势语言 2). 由浏览器直接解析执行.(函数不能直接执行) 3). 是一个解释性语言 4). 交互性(它可以做的就是信息的动态交互) 5). 安全性(不允许直接访问本地硬盘) 6). 跨平台性(只要是可以解释Js的浏览器都可以执行,和平台无关 e . javascript和java的

JS笔记—01

1.JS的代码一般在头部写2.当页面载入时,会执行位于body部分的JavaScript当被调用时,位于head部分的JavaScript被执行.3.要对外部的JS文件的一个变量操作,代码是写在内部JavaScript块儿中,而不是引入JS代码的那句代码里 4. 代码中相同变量在函数中加var则为局部变量,不加为全局变量 5.parseInt(String):转整数Number(str):转数字字符串到数字的转化:在字符串中有汉字时,"200我爱你" a.parseInt(可以自动地去

nodejs笔记01

昨天接触了nodejs: 2009年出来的 1.nodejs的优缺点 1>性能      有人测试是php的86倍(不知道真的假的) 2> 好学  与js的语法,对象,方法一样 3>前后台一样是js ,配合更方便 -------------------------- 1>缺少资料 2>对程序员要求更高 3>缺乏环境 2.  nodejs系统自带的模块: http (http协议的) ,fs (对文件的操作),net (比如socket) 第三方的模块mysql:   n

PHP 学习笔记 01

例子: 为什么要学PHP 主观原因: 前段时间在学校处理了毕业的一些事情,回到上海后开始了找工作的旅程.意向工作是WPF开发或者ASP.NET 作为后端的WEB开发. 陆陆续续一直在面试,其中有一家公司很有意思,以招.net开发为名,实际在招收PHP开发(于面试通知中告知的).去面试之后觉得蛮不错,但还是想再面试几天,故而,接下来的几天中,一边面试,一边自学PHP,以便于在最终的决定是去这家公司后,更快速的入职. 客观原因: 来自Quora:PHP相对于其它语言有哪些优点呢? 使用LAMP搭建自

【opengl 学习笔记01】HelloWorld示例

<<OpenGL Programming Guide>>这本书是看了忘,忘了又看,赶脚还是把笔记做一做心里比较踏实,哈哈. 我的主题是,好记性不如烂笔头. ================================================================ 1. 下载glut库 glut库地址为:www.opengl.org/resources/libraries/glut/glutdlls37beta.zip glut全称为:OpenGL Utilit

Node.js笔记(0003)---Express框架Router模块学习笔记

这段时间一直有在看Express框架的API,最近刚看到Router,以下是我认为需要注意的地方: Router模块中有一个param方法,刚开始看得有点模糊,官网大概是这么描述的: Map logic to route parameters. 大概意思就是路由参数的映射逻辑 这个可能一时半会也不明白其作用,尤其是不知道get和param的执行顺序 再看看源码里面的介绍: Map the given param placeholder `name`(s) to the given callbac

# JS笔记(1)

 JS理论: 1.JavaScript是一个客户端脚本 ------工作在客户端的浏览器完成:相对应的PHP.ASP.NET .JSP 是一个服务端脚本. 2.JS可以插入到HTML中的任意一个位置,不过HTML解析式从上往下解析的,所以放在上面可能会找不到控件. 3.JS的特点: 脚本编程语言 基于对象的语言 由事件驱动 跨平台.依赖于浏览器.与操作环境无关 4.JS的作用: 表单的验证(放在客户端验证比较好)----可以减轻服务端的压力,并且用户体验感更好 页面的动态效果 动态改变页面的内容

《30天自制操作系统》笔记(01)——hello bitzhuwei’s OS!

<30天自制操作系统>笔记(01)--hello bitzhuwei's OS! 最初的OS代码 1 ; hello-os 2 ; TAB=4 3 4 ORG 0x7c00 ; 指明程序的装载地址 5 6 ; 以下这段是标准FAT32格式软盘专用的代码 7 8 JMP entry 9 DB 0x90 10 DB "HELLOIPL" ; freeparam 启动区的名称可以是任意的字符串(8字节) 11 DW 512 ; 每个扇区(sector)的大小(必须为512字节)

node.js笔记——模块的开发

模块是什么? 简单来说模块是用来将实现某个功能的代码进行封装以便在其他项目中通过简单引入的方式实现模块中封装的功能的一个东西!!(我更想管他叫小程序). 模块的引入 模块的引入使用reqiure()函数来实现例如引入http模块 var h = require("http"); 这里需要注意的是require()加载函数可以加载指定的js文件,当引入的不是某个js文件而是一段没有扩展名的字符时,默认node.js会加载当前根目录下的node_modules文件夹下面的文件夹里的文件 并