본문 바로가기

전체 글

(1184)
javascript reduce map()함수는 배열의 각각의 원소에 함수를 적용하는것이라면 reduce()함수는 배열의 각 배열들을 순서대로 함수를 적용하는것입니다. 예를 들어 1~5까지의 배열이 있을때 합을 구하고 싶다면 다음과 같습니다. [1, 2, 3, 4, 5].reduce( (x, y) => x+y, 0); // 15 위의 소스는 (((((0+1) + 2) + 3) + 4) +5) 와 같이 동작합니다. 그렇습니다. 함수중에서 가장 피곤한!! 재귀함수와 비슷합니다. (재귀함수는 수학식을 코딩하기에 알맞지만 디버깅과 소스 분석이 어려운 단점이 있지요.)일명 fold 함수라고도 하는 고차함수입니다.reduce도 고차함수에 속하는 것으로 아래와 같이 움직이게 됩니다. reduce에 의해 함수를 마치면 리턴은 하나가 됩니다. (map..
javascrpt map map 메서드(Array)map 함수는 배열의 각 요소에 대해 정의된 콜백 함수를 호출하고 결과가 포함되어 있는 배열을 반환합니다. 1. 배열의 각요소에 루트값을 구하기let list = [2, 4, 5]; console.log(list.map(Math.sqrt)); // [1.4142135, 2, 2.23606] 2. 배열의 각 요소를 제곱근으로 하기var numbers1 = list.map(function(num){ return num * num }); console.log(numbers1); //[4, 16, 25] 2-1 배열의 각 요소를 제곱근으로 하기(함수 사용)map()에 해당 함수만 표기해 주면 됩니다. const square = x => x * x; var numbers2 = list.m..
ecma6 javascript 를 위한 gulp babel gulpfile.js 전체 소스babel task 부분만 보시면 됩니다. var gulp = require('gulp'); var uglify = require('gulp-uglify'); var concat = require('gulp-concat'); var minifyCss = require('gulp-minify-css'); var browserSync = require('browser-sync').create(); var browserify = require('browserify'); var source = require('vinyl-source-stream'); var buffer = require('vinyl-buffer'); var babel = require('gulp-babel'); g..
ECMAScript6 1. let / const (호이스팅 때문에 탄생)호이스팅 : js의 경우 변수 선언일때 해당 함수의 가장 첫번째에 자동으로 var 변수; 로 선언된후 해당 라인에서 초기화가 된다. 하지만 만일 스코프가 다른 변수가 있을시엔?! 함수이름과 변수 이름이 같을시엔?! 과 같이 문제점이 발생한다. 이를 위해 ecma6에서 블록안에서만 / 상수 등이 탄생 하여 스코프에 대한 영향력을 줄였음. 아래와 같이 소스가 된다면 var snack = 'Meow Mix'; function getFood(food) { if (food) { var snack = 'Friskies'; return snack; } return snack; } console.log(getFood(false)); // undefined 아래 소스처럼..
gulp 특정 파일은 제외 gulp으로 css를 모두 통합하여 min파일로 만들어 버리면 파일순으로 하나의 파일을 만들기 떄문에 responsive.css같이 파일이 순서에 밀려서 css가 안먹는 경우가 발생한다. responsive.css의 모든 속성을 !important를 주던지. (설마 이런짓을 하는사람은..) 파일을 따로 관리하는게 가장 편하겠다 싶어서 만들어 보았다. (이러면 index.css / responsive.css 파일을 html에서 링크만 걸어주면되니까) gulp.task('minifycss', function() { return gulp.src(['src/css/*.css','!src/css/responsive.css']) .pipe(concat('index.css')) .pipe(minifyCss({comp..
doctype doctype은 해당 html 문서가 어떤 타입으로 사용되어 선언되었는지를 말해주는 선언자 입니다. 파일로 본다면 이 문서가 doc / pdf / hwp 입니다! 라고 선언하는것과 같습니다. doctype에는 크게 HTML 4.01 / HTML5 / XHTML 1.0 / XHTML1.1 이 있습니다. HTML 4.01 / XHTML 1.0은 각각 다시 Strict / Transitional / Frameset 형식이 나눠지면서 각각 지원하는 태그들도 달라졌습니다.또한 표준/비표준에 따라 width값이 달라지고 / inline 정렬이 달라지기 까지 했죠. 그렇습니다. 난장판이죠? 그래서 나온것이 지금의 HTML5와 XHTML1.1 입니다. 하지만 예전의 페이지도 브라우저에서 정상적으로 랜더링을 해줘야 하기..
get 방식의 글자 256자 제한은 잘못된 상식 사실 아는 사람들은 알겠지만 get방식의 글자수 제한이 256자 라는것은 거짓말이다. http 1 버전 시대에서 잘못 내려온 일종의 속설이다. (http 1이 96년도 발표이다. 현재 많은 브라우저가 http 2.0을 지원 중이다;;) https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.2.13.2.1 General Syntax 부분을 보면 get 요청에 의해 URI가 너무 길다고 서버단에서 판단하면 414 오류를 보내도록 프로토콜이 지정되어 있다. 그렇다. 길이에 대한 명확한 부분은 없다 단지 Note 부분에 " 서버는 255바이트 이상의 URI길이는 주의" 라고 쓰여져 있다. 왜 이렇게 많은 책과 인터넷 정보에서 " get 방식은 길이 제한이 있..
python timeit 함수 수행 시간 알아내기 python의 timeit으로 콘솔에서는 쉽게 함수 수행시간을 알수 있지만 콘솔이 아닌 ide 환경이나 파일로 timeit 을 import로 해야 합니다 . 수행하려는 함수가 다음과 같습니다. sorting.py def insertion(): list = [33, 11, 99, 1, 22, 88, 55, 44, 66, 77] for i in range(len(list)): if i+1 list[pin]: list[pin], list[j] = list[j], list[pin] pin = j else: break return list 다른 파일에서 다음과 같습니다. import tim..